linghengqian opened a new issue, #29012:
URL: https://github.com/apache/shardingsphere/issues/29012

   ## Feature Request
   
   **For English only**, other languages will not be accepted.
   
   Please pay attention on issues you submitted, because we maybe need more 
details. 
   If no response anymore and we cannot make decision by current information, 
we will **close it**.
   
   Please answer these questions before submitting your issue. Thanks!
   
   ### Is your feature request related to a problem?
   
   - Yes, refer to #29000 .
   
   ### Describe the feature you would like.
   
   - When I built GraalVM Native Image under #29000 to perform unit tests, I 
noticed some strange Error Log.
   
   <details>
   <summary>Error Log</summary>
   
   ```shell
   [1/8] Initializing...                                                        
                           (24.4s @ 1.11GB)
    Java version: 17.0.9+9, vendor version: GraalVM CE 17.0.9+9.1
    Graal compiler: optimization level: 2, target machine: x86-64-v3
    C compiler: gcc (linux, x86_64, 11.4.0)
    Garbage collector: Serial GC (max heap size: 80% of RAM)
    2 user-specific feature(s)
    - com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature
    - org.graalvm.junit.platform.JUnitPlatformFeature
   [junit-platform-native] Running in 'test listener' mode using files matching 
pattern [junit-platform-unique-ids*] found in folder 
[/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/test-ids]
 and its subfolders.
   [2/8] Performing analysis...  [[INFO] 
   11月 12, 2023 12:27:32 下午 com.sun.xml.bind.v2.runtime.reflect.opt.Injector 
<clinit>sphere/proxy/bootstrap/target/classes/META-INF/jandex.idx
   严重: null
   java.security.PrivilegedActionException: java.lang.NoSuchMethodException: 
sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
           at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:573)
           at 
com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java:197)
           at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native 
Method)
           at 
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:168)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ProvenSafeClassInitializationSupport.computeInitKindAndMaybeInitializeClass(ProvenSafeClassInitializationSupport.java:348)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ProvenSafeClassInitializationSupport.computeInitKindAndMaybeInitializeClass(ProvenSafeClassInitializationSupport.java:76)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.shouldInitializeAtRuntime(ClassInitializationSupport.java:144)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.SVMHost.isInitialized(SVMHost.java:317)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.isInitialized(AnalysisType.java:894)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.maybeEagerlyInitialize(BytecodeParser.java:4334)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1662)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1655)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5331)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3406)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.iterateBytecodesForBlock(SharedGraphBuilderPhase.java:712)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3366)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3208)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1134)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.build(SharedGraphBuilderPhase.java:152)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1026)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:97)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:114)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:146)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.parseGraph(AnalysisMethod.java:819)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsedHelper(AnalysisMethod.java:784)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:767)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.lookupEncodedGraph(InlineBeforeAnalysisGraphDecoder.java:120)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.doInline(PEGraphDecoder.java:1190)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.tryInline(PEGraphDecoder.java:1173)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.trySimplifyInvoke(PEGraphDecoder.java:1028)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.handleInvoke(PEGraphDecoder.java:982)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.processNextNode(GraphDecoder.java:871)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.processNextNode(InlineBeforeAnalysisGraphDecoder.java:186)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.decode(GraphDecoder.java:600)
           at 
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.decode(PEGraphDecoder.java:854)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysis.decodeGraph(InlineBeforeAnalysis.java:77)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:193)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:583)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:165)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureFlowsGraphCreated(MethodTypeFlow.java:152)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.getOrCreateMethodFlowsGraphInfo(MethodTypeFlow.java:110)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultStaticInvokeTypeFlow.lambda$update$0(DefaultStaticInvokeTypeFlow.java:67)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.LightImmutableCollection.forEach(LightImmutableCollection.java:90)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultStaticInvokeTypeFlow.update(DefaultStaticInvokeTypeFlow.java:66)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:474)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
           at 
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
           at 
java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
           at 
java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
           at 
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
           at 
java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
           at 
java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
           at 
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
   Caused by: java.lang.NoSuchMethodException: 
sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
           at java.base/java.lang.Class.getMethod(Class.java:2227)
           at 
com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:201)
           at 
com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:197)
           at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
           ... 57 more
   
   [2/8] Performing analysis...  [*******]                                      
                          (116.7s @ 2.48GB)
     28,922 (81.02%) of 35,696 types reachable
     49,291 (57.36%) of 85,933 fields reachable
    148,651 (58.24%) of 255,245 methods reachable
      7,765 types,   997 fields, and 6,919 methods registered for reflection
         68 types,    82 fields, and    57 methods registered for JNI access
          4 native libraries: dl, pthread, rt, z
   [3/8] Building universe...                                                   
                           (15.3s @ 2.92GB)
   [4/8] Parsing methods...      [***]                                          
                            (8.7s @ 2.07GB)
   [5/8] Inlining methods...     [****]                                         
                            (4.9s @ 2.39GB)
   [6/8] Compiling methods...    [********]                                     
                           (67.8s @ 2.46GB)
   [7/8] Layouting methods...    [****]                                         
                           (12.8s @ 2.42GB)
   [8/8] Creating image...       [****]                                         
                           (11.9s @ 3.21GB)
     73.52MB (54.01%) for code area:    94,541 compilation units
     57.26MB (42.06%) for image heap:  573,953 objects and 279 resources
      5.36MB ( 3.93%) for other data
    136.13MB in total
   
------------------------------------------------------------------------------------------------------------------------
   Top 10 origins of code area:                                Top 10 object 
types in image heap:
     13.33MB calcite-core-1.35.0.jar                             15.99MB byte[] 
for code metadata
     13.17MB java.base                                            7.39MB byte[] 
for java.lang.String
      5.79MB h2-2.2.224.jar                                       7.12MB 
java.lang.Class
      5.66MB java.xml                                             5.77MB 
java.lang.String
      5.28MB groovy-4.0.10.jar                                    4.51MB byte[] 
for general heap data
      3.89MB org.apache.shardingsphere.sql.parser.autogen         2.43MB 
com.oracle.svm.core.hub.DynamicHubCompanion
      2.96MB java.desktop                                         2.12MB byte[] 
for embedded resources
      1.91MB jackson-databind-2.14.0.jar                          1.73MB byte[] 
for reflection metadata
      1.54MB avatica-core-1.23.0.jar                              1.22MB 
java.lang.String[]
      1.43MB janino-3.1.9.jar                                     1.04MB 
c.o.svm.core.hub.DynamicHub$ReflectionMetadata
     17.86MB for 728 more packages                                7.55MB for 
5161 more object types
   
------------------------------------------------------------------------------------------------------------------------
   Recommendations:
    AWT:  Use the tracing agent to collect metadata for AWT.
    HEAP: Set max heap for improved and more predictable memory usage.
    CPU:  Enable more CPU features with '-march=native' for improved 
performance.
   
------------------------------------------------------------------------------------------------------------------------
                          33.0s (12.4% of total time) in 162 GCs | Peak RSS: 
5.27GB | CPU load: 4.35
   
------------------------------------------------------------------------------------------------------------------------
   Produced artifacts:
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libawt.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libawt_headless.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libawt_xawt.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libfontmanager.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libjava.so
 (jdk_library_shim)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libjavajpeg.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/libjvm.so
 (jdk_library_shim)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/liblcms.so
 (jdk_library)
    
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/native-tests
 (executable)
   
========================================================================================================================
   Finished generating 'native-tests' in 4m 24s.
   [INFO] Executing: 
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/native-tests
 --xml-output-dir 
/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/native-test-reports
 
-Djunit.platform.listeners.uid.tracking.output.dir=/home/linghengqian/TwinklingLiftWorks/git/public/shardingsphere/infra/nativetest/target/test-ids
   JUnit Platform on Native Image - report
   ----------------------------------------
   
   org.apache.shardingsphere.infra.nativetest.jdbc.features.ShardingTest > 
testShardingInLocalTransactions() FAILED
   
   
org.apache.shardingsphere.infra.nativetest.jdbc.features.ReadWriteSplittingTest 
> testReadWriteSplittingInLocalTransactions() FAILED
   
   org.apache.shardingsphere.infra.nativetest.jdbc.features.EncryptTest > 
testEncryptInLocalTransactions() FAILED
   
   org.apache.shardingsphere.infra.nativetest.jdbc.features.MaskTest > 
testMaskInLocalTransactions() FAILED
   
   org.apache.shardingsphere.infra.nativetest.jdbc.features.ShadowTest > 
testShadowInLocalTransactions() FAILED
   
   
   Failures (5):
     JUnit Jupiter:ShardingTest:testShardingInLocalTransactions()
       MethodSource [className = 
'org.apache.shardingsphere.infra.nativetest.jdbc.features.ShardingTest', 
methodName = 'testShardingInLocalTransactions', methodParameterTypes = '']
       => java.lang.UnsupportedOperationException
          
org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.resources.NativeImageResourcePath.toFile(NativeImageResourcePath.java:421)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:121)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:115)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2811)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2882)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectoryLegacy(JDBCRepositorySQLLoader.java:115)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectory(JDBCRepositorySQLLoader.java:108)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.load(JDBCRepositorySQLLoader.java:76)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository.init(JDBCRepository.java:59)
          
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader.findService(TypedSPILoader.java:61)
          [...]
     JUnit 
Jupiter:ReadWriteSplittingTest:testReadWriteSplittingInLocalTransactions()
       MethodSource [className = 
'org.apache.shardingsphere.infra.nativetest.jdbc.features.ReadWriteSplittingTest',
 methodName = 'testReadWriteSplittingInLocalTransactions', methodParameterTypes 
= '']
       => java.lang.UnsupportedOperationException
          
org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.resources.NativeImageResourcePath.toFile(NativeImageResourcePath.java:421)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:121)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:115)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2811)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2882)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectoryLegacy(JDBCRepositorySQLLoader.java:115)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectory(JDBCRepositorySQLLoader.java:108)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.load(JDBCRepositorySQLLoader.java:76)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository.init(JDBCRepository.java:59)
          
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader.findService(TypedSPILoader.java:61)
          [...]
     JUnit Jupiter:EncryptTest:testEncryptInLocalTransactions()
       MethodSource [className = 
'org.apache.shardingsphere.infra.nativetest.jdbc.features.EncryptTest', 
methodName = 'testEncryptInLocalTransactions', methodParameterTypes = '']
       => java.lang.UnsupportedOperationException
          
org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.resources.NativeImageResourcePath.toFile(NativeImageResourcePath.java:421)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:121)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:115)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2811)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2882)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectoryLegacy(JDBCRepositorySQLLoader.java:115)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectory(JDBCRepositorySQLLoader.java:108)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.load(JDBCRepositorySQLLoader.java:76)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository.init(JDBCRepository.java:59)
          
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader.findService(TypedSPILoader.java:61)
          [...]
     JUnit Jupiter:MaskTest:testMaskInLocalTransactions()
       MethodSource [className = 
'org.apache.shardingsphere.infra.nativetest.jdbc.features.MaskTest', methodName 
= 'testMaskInLocalTransactions', methodParameterTypes = '']
       => java.lang.UnsupportedOperationException
          
org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.resources.NativeImageResourcePath.toFile(NativeImageResourcePath.java:421)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:121)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:115)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2811)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2882)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectoryLegacy(JDBCRepositorySQLLoader.java:115)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectory(JDBCRepositorySQLLoader.java:108)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.load(JDBCRepositorySQLLoader.java:76)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository.init(JDBCRepository.java:59)
          
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader.findService(TypedSPILoader.java:61)
          [...]
     JUnit Jupiter:ShadowTest:testShadowInLocalTransactions()
       MethodSource [className = 
'org.apache.shardingsphere.infra.nativetest.jdbc.features.ShadowTest', 
methodName = 'testShadowInLocalTransactions', methodParameterTypes = '']
       => java.lang.UnsupportedOperationException
          
org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.resources.NativeImageResourcePath.toFile(NativeImageResourcePath.java:421)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:121)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$1.visitFile(JDBCRepositorySQLLoader.java:115)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2811)
          [email protected]/java.nio.file.Files.walkFileTree(Files.java:2882)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectoryLegacy(JDBCRepositorySQLLoader.java:115)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.loadFromDirectory(JDBCRepositorySQLLoader.java:108)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader.load(JDBCRepositorySQLLoader.java:76)
          
org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository.init(JDBCRepository.java:59)
          
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader.findService(TypedSPILoader.java:61)
          [...]
   
   Test run finished after 34 ms
   [         6 containers found      ]
   [         0 containers skipped    ]
   [         6 containers started    ]
   [         0 containers aborted    ]
   [         6 containers successful ]
   [         0 containers failed     ]
   [         5 tests found           ]
   [         0 tests skipped         ]
   [         5 tests started         ]
   [         0 tests aborted         ]
   [         0 tests successful      ]
   [         5 tests failed          ]
   
   ```
   
   </details>
   
   - This is not reproducible in ordinary JDK17 downstream releases, and only 
occurs under GraalVM Native Image in GraalVM CE 23.0.2 for JDK 17.0.9. It 
states that `com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>` is 
calling an internal function 
`sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)`
 that does not exist in JDK 17. In other words the corresponding Class failed 
during introspection.
   
   ```shell
   严重: null
   java.security.PrivilegedActionException: java.lang.NoSuchMethodException: 
sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
           at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:573)
           at 
com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java:197)
           at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native 
Method)
           at 
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:168)
   ```
   
   - Due to some experimentation, I'm leaning toward this being an issue with 
older versions of `com.sun.xml.bind:jaxb-impl`. But because #26041 still needs 
to wait for Spring Boot 2.x to end the OSS life cycle, we can only seek 
solutions on the runtime implementation of lower versions of JAXB in Java EE 8. 
This API involves https://bugs.openjdk.org/browse/JDK-8193033 .
   
   - When I migrate from `com.sun.xml.bind:jaxb-core:2.3.0` and 
`com.sun.xml.bind:jaxb-impl:2.3.0` to `org.glassfish.jaxb:jaxb-runtime :2.3.1`, 
this Error Log disappears and the related PR moves to the next stage. 
   
   - To summarize, I'm looking to migrate the JAXB Runtime from 
`com.sun.xml.bind:jaxb-impl:2.3.0` to `org.glassfish.jaxb:jaxb-runtime:2.3.1`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to