Skip to content

Conversation

jbescos
Copy link
Member

@jbescos jbescos commented Mar 7, 2022

@jbescos jbescos marked this pull request as draft March 7, 2022 14:22
@jbescos jbescos marked this pull request as ready for review March 7, 2022 14:24
@jbescos jbescos marked this pull request as draft March 8, 2022 10:15
@jbescos jbescos force-pushed the 3.1issue4953 branch 5 times, most recently from 1727419 to ae6c34f Compare March 9, 2022 08:14
@jbescos
Copy link
Member Author

jbescos commented Mar 9, 2022

I am trying to fix one test that it is not related with the ServiceFinder. I cannot reproduce it locally.

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.215 s <<< FAILURE! - in org.glassfish.jersey.osgi.test.basic.JsonProcessingTest
[ERROR] org.glassfish.jersey.osgi.test.basic.JsonProcessingTest.testJsonObject  Time elapsed: 2.917 s  <<< ERROR!
java.lang.ClassNotFoundException: jakarta.json.JsonObject not found by PAXEXAM-PROBE-286ff3e3-1b52-4097-856d-dfef76f2e64e [41]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1585)
	at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1970)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
	at org.glassfish.jersey.server.model.IntrospectionModeller$2.run(IntrospectionModeller.java:237)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at org.glassfish.jersey.server.model.IntrospectionModeller.getAllDeclaredMethods(IntrospectionModeller.java:231)
	at org.glassfish.jersey.server.model.IntrospectionModeller.checkForNonPublicMethodIssues(IntrospectionModeller.java:151)
	at org.glassfish.jersey.server.model.IntrospectionModeller.doCreateResourceBuilder(IntrospectionModeller.java:98)
	at org.glassfish.jersey.server.model.IntrospectionModeller.access$000(IntrospectionModeller.java:59)
	at org.glassfish.jersey.server.model.IntrospectionModeller$1.call(IntrospectionModeller.java:91)
	at org.glassfish.jersey.server.model.IntrospectionModeller$1.call(IntrospectionModeller.java:88)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
	at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
	at org.glassfish.jersey.server.model.IntrospectionModeller.createResourceBuilder(IntrospectionModeller.java:88)
	at org.glassfish.jersey.server.model.Resource.from(Resource.java:781)
	at org.glassfish.jersey.server.ResourceBagConfigurator.init(ResourceBagConfigurator.java:55)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:348)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:310)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
	at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:309)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:274)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:261)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.<init>(GrizzlyHttpContainer.java:310)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:93)
	at org.glassfish.jersey.osgi.test.basic.JsonProcessingTest.testJsonObject(JsonProcessingTest.java:97)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runLeafWithRetry(ContainerTestRunner.java:97)
	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChildWithRetry(ContainerTestRunner.java:84)
	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:75)
	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:43)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.invokeViaJUnit(JUnitProbeInvoker.java:124)
	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.findAndInvoke(JUnitProbeInvoker.java:97)
	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.call(JUnitProbeInvoker.java:73)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.ops4j.pax.swissbox.framework.RemoteFrameworkImpl.invokeMethodOnService(RemoteFrameworkImpl.java:435)
	at org.ops4j.pax.swissbox.framework.RemoteFrameworkImpl.invokeMethodOnService(RemoteFrameworkImpl.java:408)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

@jbescos
Copy link
Member Author

jbescos commented Mar 9, 2022

It looks the issue is:

ERROR: Bundle org.glassfish.jersey.media.jersey-media-json-processing [37] Error starting file:/tmp/1646816632422-0/pax-exam-downloads/org.glassfish.jersey.media.jersey-media-json-processing_3.1.0.SNAPSHOT.jar (org.osgi.framework.BundleException: Unable to resolve org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0): missing requirement [org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0)] osgi.wiring.package; (&(osgi.wiring.package=org.eclipse.parsson.media)(version>=1.0.0)(!(version>=2.0.0))) [caused by: Unable to resolve org.eclipse.parsson.media [40](R 40.0): missing requirement [org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)]] Unresolved requirements: [[org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0)] osgi.wiring.package; (&(osgi.wiring.package=org.eclipse.parsson.media)(version>=1.0.0)(!(version>=2.0.0)))])
org.osgi.framework.BundleException: Unable to resolve org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0): missing requirement [org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0)] osgi.wiring.package; (&(osgi.wiring.package=org.eclipse.parsson.media)(version>=1.0.0)(!(version>=2.0.0))) [caused by: Unable to resolve org.eclipse.parsson.media [40](R 40.0): missing requirement [org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)]] Unresolved requirements: [[org.glassfish.jersey.media.jersey-media-json-processing [37](R 37.0)] osgi.wiring.package; (&(osgi.wiring.package=org.eclipse.parsson.media)(version>=1.0.0)(!(version>=2.0.0)))]
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.base/java.lang.Thread.run(Thread.java:834)
ERROR: Bundle jakarta.json-api [38] Error starting file:/tmp/1646816632422-0/pax-exam-downloads/jakarta.json-api_2.1.0.jar (org.osgi.framework.BundleException: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson) Unresolved requirements: [[jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)])
org.osgi.framework.BundleException: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson) Unresolved requirements: [[jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)]
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.base/java.lang.Thread.run(Thread.java:834)
ERROR: Bundle org.eclipse.parsson [39] Error starting file:/tmp/1646816632422-0/pax-exam-downloads/org.eclipse.parsson_1.0.0.jar (org.osgi.framework.BundleException: Unable to resolve org.eclipse.parsson [39](R 39.0): missing requirement [org.eclipse.parsson [39](R 39.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json.spi)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)] Unresolved requirements: [[org.eclipse.parsson [39](R 39.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json.spi)(version>=2.0.0)(!(version>=3.0.0)))])
org.osgi.framework.BundleException: Unable to resolve org.eclipse.parsson [39](R 39.0): missing requirement [org.eclipse.parsson [39](R 39.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json.spi)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)] Unresolved requirements: [[org.eclipse.parsson [39](R 39.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json.spi)(version>=2.0.0)(!(version>=3.0.0)))]
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.base/java.lang.Thread.run(Thread.java:834)
ERROR: Bundle org.eclipse.parsson.media [40] Error starting file:/tmp/1646816632422-0/pax-exam-downloads/org.eclipse.parsson.media_1.0.0.jar (org.osgi.framework.BundleException: Unable to resolve org.eclipse.parsson.media [40](R 40.0): missing requirement [org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)] Unresolved requirements: [[org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0)))])
org.osgi.framework.BundleException: Unable to resolve org.eclipse.parsson.media [40](R 40.0): missing requirement [org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.json-api [38](R 38.0): missing requirement [jakarta.json-api [38](R 38.0)] osgi.wiring.package; (osgi.wiring.package=org.eclipse.parsson)] Unresolved requirements: [[org.eclipse.parsson.media [40](R 40.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.json)(version>=2.0.0)(!(version>=3.0.0)))]
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.base/java.lang.Thread.run(Thread.java:834)
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:37, url:mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:38, url:mvn:jakarta.json/jakarta.json-api/2.1.0] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:39, url:mvn:org.eclipse.parsson/parsson/1.0.0] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:40, url:mvn:org.eclipse.parsson/parsson-media/1.0.0] is not resolved

@jbescos
Copy link
Member Author

jbescos commented Mar 9, 2022

Locally it can download the dependencies and the test passes:

[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Downloading [mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Creating new file at destination: /tmp/1646824466109-0/pax-exam-downloads/-1089499066.jar
[org.ops4j.pax.exam.forked.provision.StreamUtils] DEBUG : mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT : downloading...
[org.ops4j.pax.url.mvn.internal.Connection] DEBUG : Resolving [mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT]
[shaded.org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider] DEBUG : Using manager PaxLocalRepositoryManager with priority 0.0 for /home/jbescos/.m2/repository
[org.ops4j.pax.url.mvn.internal.AetherBasedResolver] DEBUG : Resolved (org.glassfish.jersey.media:jersey-media-json-processing:jar:3.1.0-SNAPSHOT) as /home/jbescos/.m2/repository/org/glassfish/jersey/media/jersey-media-json-processing/3.1.0-SNAPSHOT/jersey-media-json-processing-3.1.0-SNAPSHOT.jar
[org.ops4j.pax.exam.forked.provision.StreamUtils] DEBUG : mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT : 19872 bytes @ [ 19872kBps ]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Successfully downloaded to [/tmp/1646824466109-0/pax-exam-downloads/-1089499066.jar]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Downloading [mvn:jakarta.json/jakarta.json-api/2.1.0]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Creating new file at destination: /tmp/1646824466109-0/pax-exam-downloads/-54011761.jar
[org.ops4j.pax.exam.forked.provision.StreamUtils] DEBUG : mvn:jakarta.json/jakarta.json-api/2.1.0 : downloading...
[org.ops4j.pax.url.mvn.internal.Connection] DEBUG : Resolving [mvn:jakarta.json/jakarta.json-api/2.1.0]
[shaded.org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider] DEBUG : Using manager PaxLocalRepositoryManager with priority 0.0 for /home/jbescos/.m2/repository
[org.ops4j.pax.url.mvn.internal.AetherBasedResolver] DEBUG : Resolved (jakarta.json:jakarta.json-api:jar:2.1.0) as /home/jbescos/.m2/repository/jakarta/json/jakarta.json-api/2.1.0/jakarta.json-api-2.1.0.jar
[org.ops4j.pax.exam.forked.provision.StreamUtils] DEBUG : mvn:jakarta.json/jakarta.json-api/2.1.0 : 49290 bytes @ [ 49290kBps ]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Successfully downloaded to [/tmp/1646824466109-0/pax-exam-downloads/-54011761.jar]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Downloading [mvn:org.eclipse.parsson/parsson/1.0.0]
[org.ops4j.pax.exam.forked.provision.PlatformImpl] DEBUG : Creating new file at destination: /tmp/1646824466109-0/pax-exam-downloads/-524797807.jar
[org.ops4j.pax.exam.forked.provision.StreamUtils] DEBUG : mvn:org.eclipse.parsson/parsson/1.0.0 : downloading...
[org.ops4j.pax.url.mvn.internal.Connection] DEBUG : Resolving [mvn:org.eclipse.parsson/parsson/1.0.0]

But in Jenkins it is not able to do so:

[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:37, url:mvn:org.glassfish.jersey.media/jersey-media-json-processing/3.1.0-SNAPSHOT] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:38, url:mvn:jakarta.json/jakarta.json-api/2.1.0] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:39, url:mvn:org.eclipse.parsson/parsson/1.0.0] is not resolved
[org.ops4j.pax.exam.forked.ForkedTestContainer] ERROR : Bundle [id:40, url:mvn:org.eclipse.parsson/parsson-media/1.0.0] is not resolved

I am going to ignore that tests for now. It is not related to my changes. Actually in the stack trace it is possible to see that it is not related to ServiceFinder:
#4999 (comment)

Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
@jbescos jbescos marked this pull request as ready for review March 9, 2022 12:36
@jansupol
Copy link
Contributor

This PR is a reaction to JPMS and service loading capabilities defined in module.info. The standard ServiceFinder cannot load these services. We'll check this PR once the JPMS support is brought to Jersey.

See #5001.

@jbescos jbescos force-pushed the 3.1issue4953 branch 3 times, most recently from 9d8babd to 7465351 Compare February 23, 2024 09:05
Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace Lazy loading in ServiceFinder with Lazy ServiceLoader.Provider

2 participants