CRaC code breaks when JRT FS is used.
This can, for example, be observed in `jdk/internal/jrtfs/Basic.java` test which fails with the following exception:
```
java.lang.IllegalStateException: java.lang.IllegalAccessException: class jdk.internal.jimage.BasicImageReader cannot access class jdk.internal.crac.Core$Priority (in module java.base) because module java.base does not export jdk.internal.crac to unnamed module @200e149f
at jdk.internal.jimage.BasicImageReader.registerIfCRaCPresent(BasicImageReader.java:206)
at jdk.internal.jimage.BasicImageReader.<init>(BasicImageReader.java:110)
at jdk.internal.jimage.ImageReader$SharedImageReader.<init>(ImageReader.java:229)
at jdk.internal.jimage.ImageReader$SharedImageReader.open(ImageReader.java:243)
at jdk.internal.jimage.ImageReader.open(ImageReader.java:67)
at jdk.internal.jimage.ImageReader.open(ImageReader.java:71)
at jdk.internal.jrtfs.SystemImage.open(SystemImage.java:60)
at jdk.internal.jrtfs.JrtFileSystem.<init>(JrtFileSystem.java:90)
at jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:109)
at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:128)
at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:107)
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:339)
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:288)
at Basic.setup(Basic.java:91)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:61)
at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:366)
at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:320)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:176)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at org.testng.TestRunner.privateRun(TestRunner.java:764)
at org.testng.TestRunner.run(TestRunner.java:585)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
at org.testng.SuiteRunner.run(SuiteRunner.java:286)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.runSuites(TestNG.java:1069)
at org.testng.TestNG.run(TestNG.java:1037)
at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:107)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
at java.base/java.lang.Thread.run(Thread.java:1576)
Caused by: java.lang.IllegalAccessException: class jdk.internal.jimage.BasicImageReader cannot access class jdk.internal.crac.Core$Priority (in module java.base) because module java.base does not export jdk.internal.crac to unnamed module @200e149f
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:401)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:709)
at java.base/java.lang.reflect.Method.invoke(Method.java:558)
at jdk.internal.jimage.BasicImageReader.registerIfCRaCPresent(BasicImageReader.java:181)
... 39 more
```
This can, for example, be observed in `jdk/internal/jrtfs/Basic.java` test which fails with the following exception:
```
java.lang.IllegalStateException: java.lang.IllegalAccessException: class jdk.internal.jimage.BasicImageReader cannot access class jdk.internal.crac.Core$Priority (in module java.base) because module java.base does not export jdk.internal.crac to unnamed module @200e149f
at jdk.internal.jimage.BasicImageReader.registerIfCRaCPresent(BasicImageReader.java:206)
at jdk.internal.jimage.BasicImageReader.<init>(BasicImageReader.java:110)
at jdk.internal.jimage.ImageReader$SharedImageReader.<init>(ImageReader.java:229)
at jdk.internal.jimage.ImageReader$SharedImageReader.open(ImageReader.java:243)
at jdk.internal.jimage.ImageReader.open(ImageReader.java:67)
at jdk.internal.jimage.ImageReader.open(ImageReader.java:71)
at jdk.internal.jrtfs.SystemImage.open(SystemImage.java:60)
at jdk.internal.jrtfs.JrtFileSystem.<init>(JrtFileSystem.java:90)
at jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:109)
at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:128)
at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:107)
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:339)
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:288)
at Basic.setup(Basic.java:91)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:61)
at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:366)
at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:320)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:176)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at org.testng.TestRunner.privateRun(TestRunner.java:764)
at org.testng.TestRunner.run(TestRunner.java:585)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
at org.testng.SuiteRunner.run(SuiteRunner.java:286)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.runSuites(TestNG.java:1069)
at org.testng.TestNG.run(TestNG.java:1037)
at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:107)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
at java.base/java.lang.Thread.run(Thread.java:1576)
Caused by: java.lang.IllegalAccessException: class jdk.internal.jimage.BasicImageReader cannot access class jdk.internal.crac.Core$Priority (in module java.base) because module java.base does not export jdk.internal.crac to unnamed module @200e149f
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:401)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:709)
at java.base/java.lang.reflect.Method.invoke(Method.java:558)
at jdk.internal.jimage.BasicImageReader.registerIfCRaCPresent(BasicImageReader.java:181)
... 39 more
```
- links to
-
Commit(crac) openjdk/crac/2cc799eb
-
Review(crac) openjdk/crac/177