jdussouillez commented on issue #8067:
URL: https://github.com/apache/camel-quarkus/issues/8067#issuecomment-3915113307

   @apupier We upgraded my reproducer repo to Quarkus v3.31 + Camel Quarkus 
v3.31 and now it fails in native mode with and without image.
   
   <details>
   
   <summary>Stacktrace</summary>
   
   ```
   HTTP Request to /pdf failed, error id: 
f9cefad9-c97c-416d-8cd8-4c32b2e0cf74-1: 
org.graalvm.nativeimage.MissingReflectionRegistrationError: Cannot reflectively 
access the proxy class inheriting ['org.apache.fop.fonts.FontEventProducer']. 
To allow this operation, add the following to the 'reflection' section of 
'reachability-metadata.json' and rebuild the native image:
   
     {
       "type": {
         "proxy": [
           "org.apache.fop.fonts.FontEventProducer"
         ]
       }
     }
   
   The 'reachability-metadata.json' file should be located in 
'META-INF/native-image/<group-id>/<artifact-id>/' of your project. For further 
help, see 
https://www.graalvm.org/latest/reference-manual/native-image/metadata/#reflection
        at 
org.graalvm.nativeimage.builder/com.oracle.svm.core.reflect.MissingReflectionRegistrationUtils.reportProxyAccess(MissingReflectionRegistrationUtils.java:131)
        at 
org.graalvm.nativeimage.builder/com.oracle.svm.core.reflect.proxy.DynamicProxySupport.getProxyClass(DynamicProxySupport.java:200)
        at 
[email protected]/java.lang.reflect.Proxy.getProxyConstructor(Proxy.java:48)
        at 
[email protected]/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:924)
        at 
org.apache.fop.events.DefaultEventBroadcaster.createProxyFor(DefaultEventBroadcaster.java:146)
        at 
org.apache.fop.events.DefaultEventBroadcaster.getEventProducerFor(DefaultEventBroadcaster.java:128)
        at 
org.apache.fop.fonts.FontEventProducer$Provider.get(FontEventProducer.java:43)
        at 
org.apache.fop.fonts.FontEventAdapter.getEventProducer(FontEventAdapter.java:44)
        at 
org.apache.fop.fonts.FontEventAdapter.fontSubstituted(FontEventAdapter.java:51)
        at 
org.apache.fop.fonts.FontInfo.notifyFontReplacement(FontInfo.java:443)
        at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:215)
        at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:386)
        at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:417)
        at 
org.apache.fop.fo.properties.CommonFont.getFontState(CommonFont.java:223)
        at 
org.apache.fop.layoutmgr.BlockLayoutManager.initialize(BlockLayoutManager.java:79)
        at 
org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:118)
        at 
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:108)
        at 
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:69)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:252)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:704)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:179)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:159)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:387)
        at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:113)
        at 
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:143)
        at 
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
        at 
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:140)
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:390)
        at org.apache.fop.fo.FOTreeBuilder$3.run(FOTreeBuilder.java:207)
        at org.apache.fop.fo.FOTreeBuilder$3.run(FOTreeBuilder.java:204)
        at 
[email protected]/java.security.AccessController.doPrivileged(AccessController.java:74)
        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:203)
        at 
org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:263)
        at 
[email protected]/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:619)
        at 
[email protected]/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1738)
        at 
[email protected]/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2909)
        at 
[email protected]/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:635)
        at 
[email protected]/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:113)
        at 
[email protected]/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:551)
        at 
[email protected]/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:890)
        at 
[email protected]/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:826)
        at 
[email protected]/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:137)
        at 
[email protected]/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1225)
        at 
org.apache.xalan.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:545)
        at 
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:626)
        at 
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:299)
        at 
org.apache.camel.component.fop.FopProducer.transform(FopProducer.java:98)
        at 
org.apache.camel.component.fop.FopProducer.process(FopProducer.java:66)
        at 
org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:65)
        at 
org.apache.camel.impl.engine.SharedCamelInternalProcessor.processNonTransacted(SharedCamelInternalProcessor.java:156)
        at 
org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:133)
        at 
org.apache.camel.impl.engine.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:89)
        at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:81)
        at 
org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
        at 
org.apache.camel.support.cache.DefaultProducerCache.send(DefaultProducerCache.java:180)
        at 
org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:175)
        at 
org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:171)
        at 
org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:413)
        at 
com.github.jdussouillez.quarkuscamelfopimg.PdfService.generatePdf(PdfService.java:38)
        at 
com.github.jdussouillez.quarkuscamelfopimg.PdfService.generate(PdfService.java:20)
        at 
com.github.jdussouillez.quarkuscamelfopimg.PdfService_ClientProxy.generate(Unknown
 Source)
        at 
com.github.jdussouillez.quarkuscamelfopimg.PdfResource.generate(PdfResource.java:23)
        at 
com.github.jdussouillez.quarkuscamelfopimg.PdfResource$quarkusrestinvoker$generate_eb31acc0e950bd2216d13cbc6581cec34976181f.invoke(Unknown
 Source)
        at 
org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
        at 
io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:190)
        at 
org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
        at 
io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:666)
        at 
org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651)
        at 
org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630)
        at 
org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622)
        at 
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
        at 
org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at [email protected]/java.lang.Thread.runWith(Thread.java:1487)
        at [email protected]/java.lang.Thread.run(Thread.java:1474)
        at 
org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832)
        at 
org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:808)
   ```
   
   </details>
   
   A coworker and I fixed it by adding this 
[`reachability-metadata.json`](https://github.com/jdussouillez/quarkus-camel-fop-img/blob/master/src/main/resources/META-INF/native-image/com.github.jdussouillez/quarkuscamelfopimg/reachability-metadata.json)
 file.
   
   We are putting this native build aside for now, no rush, but I thought you 
might be interested in this reproducer.


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