Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jt400MockTest.testWriteKeyedDataQueue fails in the Quarkus Platform #5896

Closed
jamesnetherton opened this issue Mar 19, 2024 · 1 comment
Closed
Assignees
Labels
Milestone

Comments

@jamesnetherton
Copy link
Contributor

jamesnetherton commented Mar 19, 2024

Bug description

Discovered when integrating CQ 3.8.1 into the Quarkus Platform.

[ERROR] org.apache.camel.quarkus.component.jt400.it.Jt400MockTest.testWriteKeyedDataQueue  Time elapsed: 0.002 s  <<< ERROR!
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
	at io.quarkus.test.junit.QuarkusTestExtension.throwBootFailureException(QuarkusTestExtension.java:638)
	at io.quarkus.test.junit.QuarkusTestExtension.interceptTestClassConstructor(QuarkusTestExtension.java:722)
	at java.base/java.util.Optional.orElseGet(Optional.java:364)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.ExceptionInInitializerError
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at io.quarkus.runner.bootstrap.StartupActionImpl.run(StartupActionImpl.java:269)
	at io.quarkus.test.junit.QuarkusTestExtension.doJavaStart(QuarkusTestExtension.java:252)
	at io.quarkus.test.junit.QuarkusTestExtension.ensureStarted(QuarkusTestExtension.java:605)
	at io.quarkus.test.junit.QuarkusTestExtension.beforeAll(QuarkusTestExtension.java:655)
	... 1 more
Caused by: java.lang.RuntimeException: Failed to start quarkus
	at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
	... 7 more
Caused by: java.lang.IllegalAccessError: class com.ibm.as400.access.ReplyDQReadNormal cannot access its superclass com.ibm.as400.access.DQReadNormalReplyDataStream (com.ibm.as400.access.ReplyDQReadNormal is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @12811f95; com.ibm.as400.access.DQReadNormalReplyDataStream is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @37c87fcc)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:508)
	at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:468)
	at java.base/java.lang.Class.getDeclaredFields0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3297)
	at java.base/java.lang.Class.getDeclaredField(Class.java:2608)
	at io.quarkus.arc.impl.Reflections.findFieldInternal(Reflections.java:69)
	at io.quarkus.arc.impl.Reflections$1.apply(Reflections.java:38)
	at io.quarkus.arc.impl.Reflections$1.apply(Reflections.java:35)
	at io.quarkus.arc.impl.ComputingCache$1.get(ComputingCache.java:52)
	at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
	at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
	at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:49)
	at io.quarkus.arc.impl.ComputingCache.getValue(ComputingCache.java:40)
	at io.quarkus.arc.impl.Reflections.findField(Reflections.java:64)
	at org.apache.camel.quarkus.component.jt400.it.mock.Jt400MockResource_Bean.<init>(Unknown Source)
	at io.quarkus.arc.setup.Default_ComponentsProvider.addBeans2(Unknown Source)
	at io.quarkus.arc.setup.Default_ComponentsProvider.getComponents(Unknown Source)
	at io.quarkus.arc.impl.ArcContainerImpl.<init>(ArcContainerImpl.java:128)
	at io.quarkus.arc.Arc.initialize(Arc.java:38)
	at io.quarkus.arc.runtime.ArcRecorder.initContainer(ArcRecorder.java:49)
	at io.quarkus.deployment.steps.ArcProcessor$initializeContainer1770303700.deploy_0(Unknown Source)
	at io.quarkus.deployment.steps.ArcProcessor$initializeContainer1770303700.deploy(Unknown Source)
	... 8 more
@jamesnetherton
Copy link
Contributor Author

For some reason quarkus.test.flat-class-path doesn't seem to take effect when run from the test-jar. But you can force it via systemProperties config on the Camel platform member for this test and it seems to work ok.

@jamesnetherton jamesnetherton self-assigned this Apr 24, 2024
@jamesnetherton jamesnetherton added this to the 3.10.0 milestone Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant