Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8347350

[CRaC] Support JRT FS FD

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • repo-crac
    • repo-crac
    • core-libs
    • None
    • generic
    • generic

      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
      ```

            tpushkin Timofei Pushkin
            tpushkin Timofei Pushkin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: