jamesnetherton opened a new issue, #3838:
URL: https://github.com/apache/camel-quarkus/issues/3838

   Whenever `camel-quarkus-xml-jaxb` is on the classpath it is not possible to 
successfully produce a native application.
   
   ```
   Error: java.util.concurrent.ExecutionException: 
java.lang.NullPointerException: receiver is null
   com.oracle.graal.pointsto.util.AnalysisError: 
java.util.concurrent.ExecutionException: java.lang.NullPointerException: 
receiver is null
           at 
com.oracle.graal.pointsto.util.AnalysisError.shouldNotReachHere(AnalysisError.java:172)
           at 
com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:66)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$postTask$9(ImageHeapScanner.java:611)
           at 
com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:193)
           at 
com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:177)
           at 
java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
           at 
java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
           at 
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
           at 
java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
           at 
java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
           at 
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
   Caused by: java.util.concurrent.ExecutionException: 
java.lang.NullPointerException: receiver is null
           at 
java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
           at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
           at 
com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:64)
           ... 9 more
   Caused by: java.lang.NullPointerException: receiver is null
           at 
jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.readFieldValue(HotSpotConstantReflectionProvider.java:175)
           at 
com.oracle.svm.core.meta.ReadableJavaField.readFieldValue(ReadableJavaField.java:40)
           at 
com.oracle.svm.hosted.substitute.ComputedValueField.readValue(ComputedValueField.java:312)
           at 
com.oracle.svm.hosted.ameta.AnalysisConstantReflectionProvider.readHostedFieldValue(AnalysisConstantReflectionProvider.java:128)
           at 
com.oracle.svm.hosted.heap.SVMImageHeapScanner.readHostedFieldValue(SVMImageHeapScanner.java:121)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.createImageHeapObject(ImageHeapScanner.java:265)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$getOrCreateConstantReachableTask$2(ImageHeapScanner.java:195)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:63)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.getOrCreateConstantReachableTask(ImageHeapScanner.java:207)
           at 
com.oracle.svm.hosted.heap.SVMImageHeapScanner.getOrCreateConstantReachableTask(SVMImageHeapScanner.java:94)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.markConstantReachable(ImageHeapScanner.java:171)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.onFieldValueReachable(ImageHeapScanner.java:333)
           at 
com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$createImageHeapObject$3(ImageHeapScanner.java:272)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:63)
   ```
   
   I think it's related to 
https://github.com/quarkusio/quarkus/commit/3ff5a163633af6fc076f7ddf700a3c7c285f7b44
 and specifically this code:
   
   ```
   @Alias
   @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
   private Map<Class<? extends Annotation>, Map<Package, Annotation>> 
packageCache = new HashMap<>();
   ```
   
   Similar to 
https://github.com/quarkusio/quarkus/issues/3300#issuecomment-653002628, I 
think 
[creation](https://github.com/apache/camel-quarkus/blob/main/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java#L37)
 of the JAXBContext in our `xml-jaxb` extension messes up the 
`RecomputeFieldValue`. It seems to work fine if it's changed to:
   
    ```
   @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.NewInstance, declClass 
= HashMap.class)
   ```


-- 
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: commits-unsubscr...@camel.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to