Error with Quarkus native and JasperReport (Java)

Hi all,

I'm trying to include JasperReports in a Quarkus native service (GraalVM 21.3).

However, when I try to load my jrxml in this way:

JasperCompileManager.compileReport(this.getClass().getClassLoader().getResourceAsStream("jasper/template.jrxml"));

(or load the .jasper file directly)

This is the error I get:

...
023-05-10 13:26:55,789 DEBUG [net.sf.jas.eng.xml.BaseSaxParserFactory] (executor-thread-0) Instantiated SAX parser factory of type com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
2023-05-10 13:26:55,789 DEBUG [net.sf.jas.ext.DefaultExtensionsRegistry] (executor-thread-0) Loading registries for cache key jdk.internal.loader.ClassLoaders$AppClassLoader@483bf400
LogManager error of type FORMAT_FAILURE: Formatting error
Handler.reportError caught:

Yes, nothing else. No trace. Just only that message.

Version of Quarkus: 2.6.0. Version of JasperReport: 6.20.1

I have no idea how to solve this problem or where I can find any clue about that error.

Thanks in advance.

Edit (more info):

No stacktrace by default but after overriding this is the trace:

Message is Formatting error
Package Name org.jboss.logmanager.handlers
ClassName org.jboss.logmanager.handlers.ConsoleHandler
java.lang.Thread.getStackTrace(Thread.java:528)
java.util.logging.Handler.reportError(Handler.java:18)
org.jboss.logmanager.ExtHandler.reportError(ExtHandler.java:332)
org.jboss.logmanager.handlers.WriterHandler.doPublish(WriterHandler.java:45)
org.jboss.logmanager.ExtHandler.publish(ExtHandler.java:66)
org.jboss.logmanager.ExtHandler.publishToNestedHandlers(ExtHandler.java:97)
io.quarkus.bootstrap.logging.QuarkusDelayedHandler.doPublish(QuarkusDelayedHandler.java:80)
org.jboss.logmanager.ExtHandler.publish(ExtHandler.java:66)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:334)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:341)
org.jboss.logmanager.Logger.logRaw(Logger.java:750)
org.jboss.logmanager.Logger.log(Logger.java:708)
org.jboss.logging.JBossLogManagerLogger.doLogf(JBossLogManagerLogger.java:53)
org.jboss.logging.Logger.errorf(Logger.java:1743)
io.quarkus.vertx.http.runtime.QuarkusErrorHandler.handle(QuarkusErrorHandler.java:127)
io.quarkus.vertx.http.runtime.QuarkusErrorHandler.handle(QuarkusErrorHandler.java:30)
io.vertx.ext.web.impl.RouteState.handleFailure(RouteState.java:1199)
io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:160)
io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:201)
io.vertx.ext.web.impl.RouterImpl.handleFailure(RouterImpl.java:253)
io.vertx.ext.web.impl.RouteState.handleFailure(RouteState.java:1199)
io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:160)
io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:141)
io.vertx.ext.web.impl.RoutingContextImpl.doFail(RoutingContextImpl.java:604)
io.vertx.ext.web.impl.RoutingContextImpl.fail(RoutingContextImpl.java:192)
io.vertx.ext.web.impl.RoutingContextImpl.fail(RoutingContextImpl.java:181)
io.vertx.ext.web.impl.RoutingContextWrapper.fail(RoutingContextWrapper.java:100)
io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:158)
io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:91)
io.quarkus.vertx.core.runtime.VertxCoreRecorder$13.runWith(VertxCoreRecorder.java:543)
org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:829)
com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:600)
com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
Code is 5

Thanks.

lfernapalacio_1's picture
Joined: May 11 2023 - 6:42am
Last seen: 3 months 2 weeks ago

Thank you for posting to the Jaspersoft Community. Our team of experts has read your question and we are working to get you an answer as quickly as we can. If you have a Jaspersoft Professional Subscription plan, please visit https://support.tibco.com/s/ for direct access to our technical support teams offering guaranteed response times.

arai_4 - 4 months 1 week ago

Thank you for your patience, we need a little more time with our team of experts to come up with a solution. We will respond back as soon as we have an answer to your question.

arai_4 - 4 months 3 days ago

Hi

Is it possible to share the JRXML? Or can you try with very simple JRXML? It seems that it errors out just when it tries to parse the JRXML file based on the exceptions, and it seems to be related to jboss.logmanager failing to log a message similar to the link below.

https://github.com/quarkusio/quarkus/issues/12615

jmand - 3 months 3 weeks ago
show 2 more...

Dear User,

We are eagerly anticipating your response to the comment mentioned above. Please provide the requested information so that we can assist you in addressing your question effectively.

arai_4 - 3 months 2 weeks ago

Hi,

It fails with an empty JRXML too. However, discovering the JasperReports classes as GraalVM indicates, it works (with an empty JRXML). But if you use a more complex JRXML it fails because you probably need to discover fonts, images, ...

In a few days, I'll try to upload to my personal repo in Github a simple poc with Quarkus using an empty Jasper and I'll give you the link to the repo if somebody needs it.

Thanks.

lfernapalacio_1 - 3 months 2 weeks ago

0 Answers:

No answers yet
Feedback
randomness