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]