[9 + 8u] RFR - 8066612: Add a test that will call getDeclaredFields() on all classes and try to set them accessible.

Daniel Fuchs daniel.fuchs at oracle.com
Wed Dec 3 22:47:30 UTC 2014


Hi,

This is a review for a new test which has a different
implementation for JDK 8 & JDK 9

During the review of
JDK-8065552: setAccessible(true) on fields of Class may throw
              a SecurityException,
it was remarked that such a test would be useful.

So here is such a test that loads all classes from the BCL, calls
getDeclaredFields() for each of them, and attempt to set
each field to accessible.
On JDK 8 and JDK 9 this is quite fast (~ 3.2sec when a security
manager is on).

The differences between 8 & 9 are limited to:

    - ClassLoader:
         - on 8 we use 'null' (BCL)
         - on 9 we use the system class loader.

    - Building the stream of class names:
         - on 8 we have jars & folders in the boot class path
         - on 9 we have .jimage files


webrev jdk8:
http://cr.openjdk.java.net/~dfuchs/webrev_8066612/webrev-jdk8.00/

webrev jdk9:
http://cr.openjdk.java.net/~dfuchs/webrev_8066612/webrev-jdk9.00/


best regards,

-- daniel

PS: For the curious I have also experimented with a version of this
test for JDK 7u [1] (where Streams have been replaced by Lists).
On 7 you need to either increase the PermGen size or split the
test into several invocations (the method I chose in [1]).

[1] don't review the link below - it's just for the record
     if/when someone wants to backport on 7u...
http://cr.openjdk.java.net/~dfuchs/webrev_8066612/webrev-jdk7.00


More information about the jdk8u-dev mailing list