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

4.x Arquillian TCK core profile WebApp classpath is wrong #6884

Closed
jbescos opened this issue May 23, 2023 · 2 comments
Closed

4.x Arquillian TCK core profile WebApp classpath is wrong #6884

jbescos opened this issue May 23, 2023 · 2 comments
Labels
4.x Version 4.x P3 TCK
Milestone

Comments

@jbescos
Copy link
Member

jbescos commented May 23, 2023

Environment Details

  • Helidon Version: 4.0.0-SNAPSHOT
  • Helidon MP
  • JDK version:
    java 20.0.1 2023-04-18
    Java(TM) SE Runtime Environment (build 20.0.1+9-29)
    Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)
  • OS: Linux Mint 21

I am working in this task related to integrate Core Profile TCKs in Helidon:
#6799

One of the tests creates one resource for the Arquillian deployment:
https://github.com/jakartaee/platform-tck/blob/dfccff1b15b0221f5b11dea2912b728d4853f366/core-profile-tck/tck/src/main/java/ee/jakarta/tck/core/rest/jsonb/cdi/CustomJsonbSerializationIT.java#L68

I have verified that file exists in the WAR file.

Later, that resource is obtained here:
https://github.com/jakartaee/platform-tck/blob/dfccff1b15b0221f5b11dea2912b728d4853f366/core-profile-tck/tck/src/main/java/ee/jakarta/tck/core/rest/jsonb/cdi/KeysProducer.java#L42

That is failing and an exception is thrown.

The issue is that the resources that are available in KeysProducer are not the resources that exits in the WAR file. The resources we see there are the resources in the test: target/test-classes

That is wrong, we expect to get the resources from the WAR file.

Find here the stacktrace when the pub.key is created in the WAR:

Thread [main] (Suspended (breakpoint at line 62 in ee.jakarta.tck.core.rest.jsonb.cdi.CustomJsonbSerializationIT))	
	ee.jakarta.tck.core.rest.jsonb.cdi.CustomJsonbSerializationIT.createTestArchive() line: 62	
	java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x0000000801008000.invoke(java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 154	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(java.lang.Class<T>, java.lang.reflect.Method) line: 126	
	org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generateDeploymentContent(java.lang.reflect.Method) line: 91	
	org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generateDeploymentContent(org.jboss.arquillian.test.spi.TestClass) line: 50	
	org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator(org.jboss.arquillian.container.test.impl.client.deployment.AbstractDeploymentScenarioGenerator).generate(org.jboss.arquillian.test.spi.TestClass) line: 30	
	org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(org.jboss.arquillian.container.test.impl.client.deployment.event.GenerateDeployment) line: 81	
	java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x00000008010a9000.invoke(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 155	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.arquillian.core.impl.ObserverImpl.invoke(org.jboss.arquillian.core.spi.Manager, java.lang.Object) line: 86	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.invokeObservers() line: 103	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.proceed() line: 90	
	org.jboss.arquillian.core.impl.ManagerImpl.fire(T, org.jboss.arquillian.core.spi.NonManagedObserver<T>) line: 133	
	org.jboss.arquillian.core.impl.ManagerImpl.fire(java.lang.Object) line: 105	
	org.jboss.arquillian.core.impl.EventImpl<T>.fire(T) line: 62	
	org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(org.jboss.arquillian.test.spi.event.suite.BeforeClass) line: 95	
	java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x0000000801105800.invoke(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 155	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.arquillian.core.impl.ObserverImpl.invoke(org.jboss.arquillian.core.spi.Manager, java.lang.Object) line: 86	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.invokeObservers() line: 103	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.proceed() line: 90	
	org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(org.jboss.arquillian.core.spi.EventContext<org.jboss.arquillian.test.spi.event.suite.ClassEvent>) line: 83	
	java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x0000000801105800.invoke(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 155	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.arquillian.core.impl.ObserverImpl.invoke(org.jboss.arquillian.core.spi.Manager, java.lang.Object) line: 86	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.proceed() line: 95	
	org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(org.jboss.arquillian.core.spi.EventContext<org.jboss.arquillian.test.spi.event.suite.SuiteEvent>) line: 69	
	java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x0000000801105800.invoke(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 155	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.arquillian.core.impl.ObserverImpl.invoke(org.jboss.arquillian.core.spi.Manager, java.lang.Object) line: 86	
	org.jboss.arquillian.core.impl.EventContextImpl<T>.proceed() line: 95	
	org.jboss.arquillian.core.impl.ManagerImpl.fire(T, org.jboss.arquillian.core.spi.NonManagedObserver<T>) line: 133	
	org.jboss.arquillian.core.impl.ManagerImpl.fire(java.lang.Object) line: 105	
	org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(java.lang.Class<?>, org.jboss.arquillian.test.spi.LifecycleMethodExecutor) line: 89	
	org.jboss.arquillian.junit5.ArquillianExtension.beforeAll(org.junit.jupiter.api.extension.ExtensionContext) line: 35	
	org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllCallbacks$8(org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.ExtensionContext) line: 368	
	org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$$Lambda$287.0x00000008010a1848.execute() line: not available	
	org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollector(org.junit.platform.engine.support.hierarchical.ThrowableCollector).execute(org.junit.platform.engine.support.hierarchical.ThrowableCollector$Executable) line: 73	
	org.junit.jupiter.engine.descriptor.ClassTestDescriptor(org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor).invokeBeforeAllCallbacks(org.junit.jupiter.engine.execution.JupiterEngineExecutionContext) line: 368	
	org.junit.jupiter.engine.descriptor.ClassTestDescriptor(org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor).before(org.junit.jupiter.engine.execution.JupiterEngineExecutionContext) line: 192	
	org.junit.jupiter.engine.descriptor.ClassTestDescriptor(org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor).before(org.junit.platform.engine.support.hierarchical.EngineExecutionContext) line: 78	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$5() line: 136	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$245.0x0000000801097248.execute() line: not available	
	org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollector(org.junit.platform.engine.support.hierarchical.ThrowableCollector).execute(org.junit.platform.engine.support.hierarchical.ThrowableCollector$Executable) line: 73	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$7(org.junit.platform.engine.support.hierarchical.EngineExecutionContext) line: 129	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$244.0x0000000801097030.invoke(org.junit.platform.engine.support.hierarchical.EngineExecutionContext) line: not available	
	org.junit.jupiter.engine.descriptor.ClassTestDescriptor(org.junit.platform.engine.support.hierarchical.Node<C>).around(C, org.junit.platform.engine.support.hierarchical.Node.Invocation<C>) line: 137	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$8() line: 127	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$243.0x0000000801096c28.execute() line: not available	
	org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollector(org.junit.platform.engine.support.hierarchical.ThrowableCollector).execute(org.junit.platform.engine.support.hierarchical.ThrowableCollector$Executable) line: 73	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.executeRecursively() line: 126	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.execute() line: 84	
	org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$249.0x0000000801097d10.accept(java.lang.Object) line: not available	
	java.util.ArrayList<E>.forEach(java.util.function.Consumer<? super E>) line: 1511	
	org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(java.util.List<? extends org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorService.TestTask>) line: 38	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$5() line: 143	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$245.0x0000000801097248.execute() line: not available	
	org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollector(org.junit.platform.engine.support.hierarchical.ThrowableCollector).execute(org.junit.platform.engine.support.hierarchical.ThrowableCollector$Executable) line: 73	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$7(org.junit.platform.engine.support.hierarchical.EngineExecutionContext) line: 129	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$244.0x0000000801097030.invoke(org.junit.platform.engine.support.hierarchical.EngineExecutionContext) line: not available	
	org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor(org.junit.platform.engine.support.hierarchical.Node<C>).around(C, org.junit.platform.engine.support.hierarchical.Node.Invocation<C>) line: 137	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.lambda$executeRecursively$8() line: 127	
	org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$243.0x0000000801096c28.execute() line: not available	
	org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollector(org.junit.platform.engine.support.hierarchical.ThrowableCollector).execute(org.junit.platform.engine.support.hierarchical.ThrowableCollector$Executable) line: 73	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.executeRecursively() line: 126	
	org.junit.platform.engine.support.hierarchical.NodeTestTask<C>.execute() line: 84	
	org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorService.TestTask) line: 32	
	org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor<C>.execute() line: 57	
	org.junit.jupiter.engine.JupiterTestEngine(org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine<C>).execute(org.junit.platform.engine.ExecutionRequest) line: 51	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(org.junit.platform.engine.TestDescriptor, org.junit.platform.engine.EngineExecutionListener, org.junit.platform.engine.ConfigurationParameters, org.junit.platform.engine.TestEngine) line: 108	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(org.junit.platform.launcher.core.LauncherDiscoveryResult, org.junit.platform.engine.EngineExecutionListener) line: 88	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(org.junit.platform.launcher.core.InternalTestPlan, org.junit.platform.launcher.core.LauncherDiscoveryResult, org.junit.platform.launcher.TestExecutionListener) line: 54	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda$207.0x0000000801088228.accept(java.lang.Object) line: not available	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(org.junit.platform.engine.ConfigurationParameters, org.junit.platform.launcher.core.TestExecutionListenerRegistry, java.util.function.Consumer<org.junit.platform.launcher.TestExecutionListener>) line: 67	
	org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(org.junit.platform.launcher.core.InternalTestPlan, org.junit.platform.launcher.TestExecutionListener...) line: 52	
	org.junit.platform.launcher.core.DefaultLauncher.execute(org.junit.platform.launcher.core.InternalTestPlan, org.junit.platform.launcher.TestExecutionListener[]) line: 96	
	org.junit.platform.launcher.core.DefaultLauncher.execute(org.junit.platform.launcher.LauncherDiscoveryRequest, org.junit.platform.launcher.TestExecutionListener...) line: 75	
	org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(org.apache.maven.surefire.api.util.TestsToRun, org.apache.maven.surefire.junitplatform.RunListenerAdapter) line: 188	
	org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(org.apache.maven.surefire.api.util.TestsToRun, org.apache.maven.surefire.api.report.RunListener) line: 154	
	org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(java.lang.Object) line: 128	
	org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess() line: 428	
	org.apache.maven.surefire.booter.ForkedBooter.execute() line: 162	
	org.apache.maven.surefire.booter.ForkedBooter.run(org.apache.maven.surefire.booter.ForkedBooter, java.lang.String[]) line: 562	
	org.apache.maven.surefire.booter.ForkedBooter.main(java.lang.String[]) line: 548	

And when the pub.key is read:

System Thread [[0x72178d36 0x2294f589] Nima socket] (Suspended (breakpoint at line 44 in ee.jakarta.tck.core.rest.jsonb.cdi.KeysProducer))	
	owns: org.jboss.weld.bean.ContextualInstanceStrategy$ApplicationScopedContextualInstanceStrategy<T>  (id=257)	
	ee.jakarta.tck.core.rest.jsonb.cdi.KeysProducer.loadKeys() line: 44	
	java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.LambdaForm$MH.0x0000000801490400.invoke(java.lang.Object, java.lang.Object) line: not available	
	java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object) line: not available	
	jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) line: 154	
	jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) line: 104	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 578	
	org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker<T>.invokeMethods(java.util.List<java.lang.reflect.Method>, T) line: 83	
	org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker<T>.postConstruct(T, org.jboss.weld.injection.producer.Instantiator<T>) line: 66	
	org.jboss.weld.injection.producer.BeanInjectionTarget<T>(org.jboss.weld.injection.producer.BasicInjectionTarget<T>).postConstruct(T) line: 122	
	org.jboss.weld.bean.ManagedBean<T>.create(jakarta.enterprise.context.spi.CreationalContext<T>) line: 164	
	org.jboss.weld.contexts.unbound.ApplicationContextImpl(org.jboss.weld.contexts.AbstractContext).get(jakarta.enterprise.context.spi.Contextual<T>, jakarta.enterprise.context.spi.CreationalContext<T>) line: 96	
	org.jboss.weld.bean.ContextualInstanceStrategy$ApplicationScopedContextualInstanceStrategy<T>(org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy<T>).get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 100	
	org.jboss.weld.bean.ContextualInstanceStrategy$ApplicationScopedContextualInstanceStrategy<T>.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 140	
	org.jboss.weld.bean.ContextualInstance.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 50	
	org.jboss.weld.manager.BeanManagerImpl.getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>, boolean) line: 680	
	org.jboss.weld.bean.ProducerMethod$1(org.jboss.weld.injection.producer.AbstractMemberProducer<X,T>).getReceiver(jakarta.enterprise.context.spi.CreationalContext<?>, jakarta.enterprise.context.spi.CreationalContext<?>) line: 123	
	org.jboss.weld.bean.ProducerMethod$1(org.jboss.weld.injection.producer.AbstractMemberProducer<X,T>).produce(jakarta.enterprise.context.spi.CreationalContext<T>) line: 158	
	org.jboss.weld.bean.ProducerMethod<X,T>(org.jboss.weld.bean.AbstractProducerBean<X,T,S>).create(jakarta.enterprise.context.spi.CreationalContext<T>) line: 180	
	org.jboss.weld.contexts.unbound.DependentContextImpl.get(jakarta.enterprise.context.spi.Contextual<T>, jakarta.enterprise.context.spi.CreationalContext<T>) line: 64	
	org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy<T>.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 100	
	org.jboss.weld.bean.ContextualInstance.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 50	
	org.jboss.weld.manager.BeanManagerImpl.getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>, boolean) line: 680	
	org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(jakarta.enterprise.inject.spi.InjectionPoint, jakarta.enterprise.inject.spi.Bean<?>, jakarta.enterprise.context.spi.CreationalContext<?>) line: 780	
	org.jboss.weld.injection.FieldInjectionPoint<T,X>.inject(java.lang.Object, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 92	
	org.jboss.weld.util.Beans.injectBoundFields(T, jakarta.enterprise.context.spi.CreationalContext<T>, org.jboss.weld.manager.BeanManagerImpl, java.lang.Iterable<? extends org.jboss.weld.injection.FieldInjectionPoint<?,?>>) line: 345	
	org.jboss.weld.util.Beans.injectFieldsAndInitializers(T, jakarta.enterprise.context.spi.CreationalContext<T>, org.jboss.weld.manager.BeanManagerImpl, java.util.List<? extends java.lang.Iterable<? extends org.jboss.weld.injection.FieldInjectionPoint<?,?>>>, java.util.List<? extends java.lang.Iterable<? extends org.jboss.weld.injection.MethodInjectionPoint<?,?>>>) line: 356	
	org.jboss.weld.injection.producer.ResourceInjector$1.proceed() line: 69	
	org.jboss.weld.injection.producer.ResourceInjector$1(org.jboss.weld.injection.InjectionContextImpl<T>).run() line: 48	
	org.jboss.weld.injection.producer.ResourceInjector<T>.inject(T, jakarta.enterprise.context.spi.CreationalContext<T>, org.jboss.weld.manager.BeanManagerImpl, org.jboss.weld.annotated.slim.SlimAnnotatedType<T>, jakarta.enterprise.inject.spi.InjectionTarget<T>) line: 71	
	org.jboss.weld.injection.producer.BeanInjectionTarget<T>(org.jboss.weld.injection.producer.BasicInjectionTarget<T>).inject(T, jakarta.enterprise.context.spi.CreationalContext<T>) line: 117	
	org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider$6(org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider$InjectionManagerInjectedCdiTarget).inject(java.lang.Object, jakarta.enterprise.context.spi.CreationalContext) line: 677	
	org.jboss.weld.bean.ManagedBean<T>.create(jakarta.enterprise.context.spi.CreationalContext<T>) line: 161	
	org.jboss.weld.contexts.unbound.DependentContextImpl.get(jakarta.enterprise.context.spi.Contextual<T>, jakarta.enterprise.context.spi.CreationalContext<T>) line: 64	
	org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy<T>.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 100	
	org.jboss.weld.bean.ContextualInstance.get(jakarta.enterprise.inject.spi.Bean<T>, org.jboss.weld.manager.BeanManagerImpl, jakarta.enterprise.context.spi.CreationalContext<?>) line: 50	
	org.jboss.weld.manager.BeanManagerImpl.getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>, boolean) line: 680	
	org.jboss.weld.manager.BeanManagerImpl.getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>) line: 703	
	org.jboss.weld.bean.builtin.BeanManagerProxy(org.jboss.weld.util.ForwardingBeanManager).getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>) line: 63	
	org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(jakarta.enterprise.inject.spi.Bean<?>, java.lang.reflect.Type, jakarta.enterprise.context.spi.CreationalContext<?>) line: 88	
	org.glassfish.jersey.ext.cdi1x.internal.CdiUtil.getBeanReference(java.lang.Class<T>, jakarta.enterprise.inject.spi.Bean, jakarta.enterprise.inject.spi.BeanManager) line: 129	
	org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanSupplier$1.getInstance(java.lang.Class<T>) line: 72	
	org.glassfish.jersey.ext.cdi1x.internal.RequestScopedCdiBeanSupplier(org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanSupplier<T>)._provide() line: 124	
	org.glassfish.jersey.ext.cdi1x.internal.RequestScopedCdiBeanSupplier.get() line: 46	
	org.glassfish.jersey.inject.hk2.InstanceSupplierFactoryBridge<T>.provide() line: 53	
	org.jvnet.hk2.internal.FactoryCreator<T>.create(org.glassfish.hk2.api.ServiceHandle<?>, org.jvnet.hk2.internal.SystemDescriptor<?>) line: 129	
	org.jvnet.hk2.internal.SystemDescriptor<T>.create(org.glassfish.hk2.api.ServiceHandle<?>) line: 466	
	org.jvnet.hk2.internal.PerLookupContext.findOrCreate(org.glassfish.hk2.api.ActiveDescriptor<T>, org.glassfish.hk2.api.ServiceHandle<?>) line: 46	
	org.jvnet.hk2.internal.Utilities.createService(org.glassfish.hk2.api.ActiveDescriptor<T>, org.glassfish.hk2.api.Injectee, org.jvnet.hk2.internal.ServiceLocatorImpl, org.glassfish.hk2.api.ServiceHandle<T>, java.lang.Class<?>) line: 2109	
	org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(java.lang.reflect.Type, java.lang.String, org.glassfish.hk2.api.Unqualified, boolean, java.lang.annotation.Annotation...) line: 769	
	org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(java.lang.reflect.Type, java.lang.String, org.glassfish.hk2.api.Unqualified, java.lang.annotation.Annotation...) line: 732	
	org.jvnet.hk2.internal.ServiceLocatorImpl.getService(java.lang.Class<T>, java.lang.annotation.Annotation...) line: 702	
	org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager(org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager).getInstance(java.lang.Class<T>) line: 160	
	org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getInstance(java.lang.Class) line: 30	
	org.glassfish.jersey.internal.inject.Injections.getOrCreate(org.glassfish.jersey.internal.inject.InjectionManager, java.lang.Class<T>) line: 105	
	org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(org.glassfish.jersey.internal.inject.InjectionManager) line: 260	
	org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext) line: 51	
	org.glassfish.jersey.server.internal.routing.RoutingStage._apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext, org.glassfish.jersey.server.internal.routing.Router) line: 86	
	org.glassfish.jersey.server.internal.routing.RoutingStage._apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext, org.glassfish.jersey.server.internal.routing.Router) line: 89	
	org.glassfish.jersey.server.internal.routing.RoutingStage._apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext, org.glassfish.jersey.server.internal.routing.Router) line: 89	
	org.glassfish.jersey.server.internal.routing.RoutingStage._apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext, org.glassfish.jersey.server.internal.routing.Router) line: 89	
	org.glassfish.jersey.server.internal.routing.RoutingStage.apply(org.glassfish.jersey.server.internal.process.RequestProcessingContext) line: 69	
	org.glassfish.jersey.server.internal.routing.RoutingStage.apply(java.lang.Object) line: 38	
	org.glassfish.jersey.process.internal.Stages.process(DATA, org.glassfish.jersey.process.internal.Stage<DATA>, org.glassfish.jersey.internal.util.collection.Ref<T>) line: 173	
	org.glassfish.jersey.server.ServerRuntime$1.run() line: 253	
	org.glassfish.jersey.internal.Errors$1.call() line: 248	
	org.glassfish.jersey.internal.Errors$1.call() line: 244	
	org.glassfish.jersey.internal.Errors.process(java.util.concurrent.Callable<T>, boolean) line: 292	
	org.glassfish.jersey.internal.Errors.process(org.glassfish.jersey.internal.util.Producer<T>, boolean) line: 274	
	org.glassfish.jersey.internal.Errors.process(java.lang.Runnable) line: 244	
	org.glassfish.jersey.inject.hk2.Hk2RequestScope(org.glassfish.jersey.process.internal.RequestScope).runInScope(org.glassfish.jersey.process.internal.RequestContext, java.lang.Runnable) line: 265	
	org.glassfish.jersey.server.ServerRuntime.process(org.glassfish.jersey.server.ContainerRequest) line: 240	
	org.glassfish.jersey.server.ApplicationHandler.handle(org.glassfish.jersey.server.ContainerRequest) line: 697	
	io.helidon.microprofile.server.JaxRsService.doHandle(io.helidon.common.context.Context, io.helidon.nima.webserver.http.ServerRequest, io.helidon.nima.webserver.http.ServerResponse) line: 242	
	io.helidon.microprofile.server.JaxRsService.lambda$handle$2(io.helidon.common.context.Context, io.helidon.nima.webserver.http.ServerRequest, io.helidon.nima.webserver.http.ServerResponse) line: 194	
	io.helidon.microprofile.server.JaxRsService$$Lambda$1747.0x000000080156abf0.run() line: not available	
	io.helidon.common.context.Contexts.runInContext(io.helidon.common.context.Context, java.lang.Runnable) line: 117	
	io.helidon.microprofile.server.JaxRsService.handle(io.helidon.nima.webserver.http.ServerRequest, io.helidon.nima.webserver.http.ServerResponse) line: 194	
	io.helidon.microprofile.server.JaxRsService$$Lambda$1215.0x00000008014ab518.handle(io.helidon.nima.webserver.http.ServerRequest, io.helidon.nima.webserver.http.ServerResponse) line: not available	
	io.helidon.nima.webserver.http.HttpRouting$RoutingExecutor.doRoute(io.helidon.nima.webserver.ConnectionContext, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: 549	
	io.helidon.nima.webserver.http.HttpRouting$RoutingExecutor.call() line: 508	
	io.helidon.nima.webserver.http.HttpRouting$RoutingExecutor.call() line: 486	
	io.helidon.nima.webserver.http.ErrorHandlers.runWithErrorHandling(io.helidon.nima.webserver.ConnectionContext, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse, java.util.concurrent.Callable<java.lang.Void>) line: 75	
	io.helidon.nima.webserver.http.Filters$FilterChainImpl.proceed() line: 121	
	io.helidon.nima.observe.metrics.MetricsFeature.lambda$configureVendorMetrics$2(io.helidon.nima.webserver.KeyPerformanceIndicatorSupport$Metrics, io.helidon.nima.webserver.http.FilterChain, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: 162	
	io.helidon.nima.observe.metrics.MetricsFeature$$Lambda$1031.0x000000080141ca70.filter(io.helidon.nima.webserver.http.FilterChain, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: not available	
	io.helidon.nima.webserver.http.Filters$FilterChainImpl.proceed() line: 119	
	io.helidon.nima.webserver.context.ContextFeature$$Lambda$1738.0x0000000801562b70.run() line: not available	
	io.helidon.common.context.Contexts.runInContext(io.helidon.common.context.Context, java.lang.Runnable) line: 117	
	io.helidon.nima.webserver.context.ContextFeature.filter(io.helidon.nima.webserver.http.FilterChain, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: 71	
	io.helidon.nima.webserver.context.ContextFeature$$Lambda$1207.0x00000008014a9478.filter(io.helidon.nima.webserver.http.FilterChain, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: not available	
	io.helidon.nima.webserver.http.Filters$FilterChainImpl.proceed() line: 119	
	io.helidon.nima.webserver.http.Filters.executeFilters(io.helidon.nima.webserver.http.FilterChain) line: 87	
	io.helidon.nima.webserver.http.Filters.lambda$filter$0(io.helidon.nima.webserver.http.FilterChain) line: 83	
	io.helidon.nima.webserver.http.Filters$$Lambda$1736.0x0000000801562740.call() line: not available	
	io.helidon.nima.webserver.http.ErrorHandlers.runWithErrorHandling(io.helidon.nima.webserver.ConnectionContext, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse, java.util.concurrent.Callable<java.lang.Void>) line: 75	
	io.helidon.nima.webserver.http.Filters.filter(io.helidon.nima.webserver.ConnectionContext, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse, java.util.concurrent.Callable<java.lang.Void>) line: 83	
	io.helidon.nima.webserver.http.HttpRouting.route(io.helidon.nima.webserver.ConnectionContext, io.helidon.nima.webserver.http.RoutingRequest, io.helidon.nima.webserver.http.RoutingResponse) line: 107	
	io.helidon.nima.webserver.http1.Http1Connection.route(io.helidon.common.http.HttpPrologue, io.helidon.common.http.WritableHeaders<?>) line: 326	
	io.helidon.nima.webserver.http1.Http1Connection.handle() line: 145	
	io.helidon.nima.webserver.ConnectionHandler.run() line: 107	
	io.helidon.nima.webserver.ConnectionHandler(io.helidon.common.task.InterruptableTask<T>).call() line: 47	
	io.helidon.nima.webserver.ThreadPerTaskExecutor$ThreadBoundFuture<T>.run() line: 239	
	java.lang.VirtualThread.runWith(java.lang.Object, java.lang.Runnable) line: 335	
	java.lang.VirtualThread.run(java.lang.Runnable) line: 305	
	java.lang.VirtualThread$VThreadContinuation.lambda$new$0(java.lang.VirtualThread, java.lang.Runnable) line: 177	
	java.lang.VirtualThread$VThreadContinuation$$Lambda$1267.0x00000008012e8a50.run() line: not available	
	java.lang.VirtualThread$VThreadContinuation(jdk.internal.vm.Continuation).enter0() line: 327	
	jdk.internal.vm.Continuation.enter(jdk.internal.vm.Continuation, boolean) line: 320	

If you want to try it:

git remote add jbescos https://github.com/jbescos/helidon.git
git checkout jbescos/issue6799
cd microprofile/tests/tck/tck-core-profile
mvn clean install

TCK Core Profile does not exist in maven repository yet, so you also need to do this:

git clone https://github.com/jakartaee/platform-tck.git
cd platform-tck/core-profile-tck
mvn clean install
@jbescos jbescos changed the title Nima-Arquillian class loader issue Nima-Arquillian tck core profile CustomJsonbSerializationIT failure May 23, 2023
@jbescos jbescos changed the title Nima-Arquillian tck core profile CustomJsonbSerializationIT failure Nima-Arquillian tck core profile WebApp classpath is wrong May 24, 2023
@m0mus m0mus changed the title Nima-Arquillian tck core profile WebApp classpath is wrong 4.x Arquillian TCK core profile WebApp classpath is wrong May 25, 2023
@m0mus m0mus added 4.x Version 4.x TCK P3 labels May 25, 2023
@m0mus m0mus added this to the 4.0.0 milestone May 25, 2023
@jbescos
Copy link
Member Author

jbescos commented May 26, 2023

I was debugging this further and it seems Helidon-Arquillian creates a class loader that can be obtained in this way:
Thread.currentThread().getContextClassLoader() -> HelidonContainerClassloader

But the TCK test is getting the resource in this other way:
getClass().getClassLoader() -> jdk.internal.loader.ClassLoaders$AppClassLoader

It works with the first classloader, but it does not work with the second. I guess it should work with the second too, so it requires changes in Helidon Arquillian.

@jbescos
Copy link
Member Author

jbescos commented May 26, 2023

Closing because it was fixed here jakartaee/platform-tck#1178 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4.x Version 4.x P3 TCK
Projects
Archived in project
Development

No branches or pull requests

2 participants