On Tue, 15 Mar 2022 20:22:16 GMT, Kevin Walls <kev...@openjdk.org> wrote:

> Removing permission checks which, in the presence of a Security Manager, 
> would check for a RuntimePermission "className.subclass".  This was to 
> prevent subclassing these classes, but is no longer necessary with strong 
> encapsulation from modules.

Added test update.  Checks that with permissive module options we can extend 
sun.management.spi.PlatformMBeanProvider, and that without them we cannot.

Output of the new test is like this:

----------System.out:(11/1279)----------
---PlatformMBeanProviderConstructorCheck:
---PlatformMBeanProviderConstructorCheck: invoke MyProvider with expectedFail = 
false
---PlatformMBeanProviderConstructorCheck PASSED (1) (expectedFail = false)
---PlatformMBeanProviderConstructorCheck: re-invoke without --add-modules or 
--add-exports
Command line: 
[/tank/kwalls/repos/personal/jdk/open/test/../../build/linux-x86_64-server-release/images/jdk/bin/java
 -cp 
/tank/kwalls/repos/personal/jdk/open/test/JTwork/classes/sun/management/PlatformMBeanProviderConstructorCheck.d:/tank/kwalls/repos/personal/jdk/open/test/jdk/sun/management:/tank/kwalls/repos/personal/jdk/open/test/JTwork/classes/test/lib:/tank/kwalls/repos/personal/jdk/open/test/lib:/opt/jtreg6.1/lib/javatest.jar:/opt/jtreg6.1/lib/jtreg.jar
 PlatformMBeanProviderConstructorCheck --nomoduleargs ]
[2022-03-18T17:19:34.798024163Z] Gathering output for process 10627
[2022-03-18T17:19:34.902532753Z] Waiting for completion for process 10627
[2022-03-18T17:19:34.902807078Z] Waiting for completion finished for process 
10627
Output and diagnostic info for process 10627 was saved into 
'pid-10627-output.log'
[2022-03-18T17:19:34.908368606Z] Waiting for completion for process 10627
[2022-03-18T17:19:34.908503964Z] Waiting for completion finished for process 
10627
----------System.err:(9/647)----------
 stdout: [---PlatformMBeanProviderConstructorCheck:
---PlatformMBeanProviderConstructorCheck: invoke MyProvider with expectedFail = 
true
---PlatformMBeanProviderConstructorCheck got exception: 
java.lang.IllegalAccessError: superclass access check failed: class 
PlatformMBeanProviderConstructorCheck$MyProvider (in unnamed module 
@0x4795bbf5) cannot access class sun.management.spi.PlatformMBeanProvider (in 
module java.management) because module java.management does not export 
sun.management.spi to unnamed module @0x4795bbf5
---PlatformMBeanProviderConstructorCheck PASSED (2) (expectedFail = true)
];
 stderr: []
 exitValue = 0

STATUS:Passed.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7827

Reply via email to