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

Version 4.6.1 works, but logs errors on JDK 11 #764

Closed
perch24 opened this issue Mar 8, 2019 · 6 comments
Closed

Version 4.6.1 works, but logs errors on JDK 11 #764

perch24 opened this issue Mar 8, 2019 · 6 comments
Assignees
Milestone

Comments

@perch24
Copy link

perch24 commented Mar 8, 2019

Expected Behavior

Plugin should not print class not found errors for javax.activation.Datasource when running with JDK 11.

Current Behavior

With the new shaded dependencies in 4.6.1 the plugin prints class not found errors for javax.activation. The buildDockerImage task succeeds but with a long stack trace. I'm not sure if it works for other tasks types, but it's kind of ugly for buildDockerImage.

Context

The tasks succeeds so it's more of cosmetic thing. Also, I'm able to get rid of the errors by including activation as a runtime buildSrc dependency.

Steps to Reproduce (for bugs)

Run dockerBuildImage with JDK 11 and version 4.6.1 of the plugin.

Your Environment

MacOS
Java 11

@bmuschko
Copy link
Owner

bmuschko commented Mar 8, 2019

The JavaBeans Activation Framework (JAF) was deprecated with Java 9 and has been removed with Java 11. You will have to add it to the buildscript's classpath yourself. I don't think we'll want to package some version in this plugin that could potentially conflict with other versions of javax.activation brought in by other plugins.

Why could potentially include it and shaded the package but I am not sure if the actual package name javax.activation is expected. Can you post the stack trace?

@bmuschko bmuschko self-assigned this Mar 8, 2019
@perch24
Copy link
Author

perch24 commented Mar 8, 2019

The following warnings have been detected: WARNING: HK2 failure has been detected in a code that does not run in an active Jersey Error scope.
WARNING: HK2 service reification failed for [com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.DataSourceProvider] with an exception:
MultiException stack 1 of 2
java.lang.NoClassDefFoundError: javax/activation/DataSource
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3138)
        at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2358)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1378)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1374)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.Utilities.getAllConstructors(Utilities.java:1374)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.Utilities.findProducerConstructor(Utilities.java:1317)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.DefaultClassAnalyzer.getConstructor(DefaultClassAnalyzer.java:83)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.inject.hk2.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:148)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:180)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:129)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:180)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:740)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:694)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:464)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2310)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:128)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1395)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1390)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:128)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1452)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1377)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1366)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:158)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:54)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:329)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:157)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:265)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:136)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig$State.lambda$initRuntime$2(ClientConfig.java:470)
        at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4390)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:470)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:341)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:826)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:285)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:143)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:112)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:108)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:99)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:456)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:357)
        at com.github.dockerjava.jaxrs.async.POSTCallbackNotifier.response(POSTCallbackNotifier.java:29)
        at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:50)
        at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:24)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 49 more
MultiException stack 2 of 2
java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
        implementation=com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.DataSourceProvider
        contracts={com.bmuschko.gradle.docker.shaded.javax.ws.rs.ext.MessageBodyReader,com.bmuschko.gradle.docker.shaded.javax.ws.rs.ext.MessageBodyWriter}
        scope=com.bmuschko.gradle.docker.shaded.javax.inject.Singleton
        qualifiers={}
        descriptorType=CLASS
        descriptorVisibility=NORMAL
        metadata=
        rank=0
        loader=null
        proxiable=null
        proxyForSameScope=null
        analysisName=null
        id=14
        locatorId=0
        identityHashCode=1960842280
        reified=false)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:705)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:464)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2310)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:128)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1395)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1390)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:128)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1452)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1377)
        at com.bmuschko.gradle.docker.shaded.org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1366)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:158)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:54)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:329)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:157)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:265)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:136)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig$State.lambda$initRuntime$2(ClientConfig.java:470)
        at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4390)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:470)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:341)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:826)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:285)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:143)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:112)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:108)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:99)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:456)
        at com.bmuschko.gradle.docker.shaded.org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:357)
        at com.github.dockerjava.jaxrs.async.POSTCallbackNotifier.response(POSTCallbackNotifier.java:29)
        at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:50)
        at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:24)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

@bmuschko
Copy link
Owner

bmuschko commented Mar 8, 2019

Jersey seems to pull in half of the Glassfish server. 😫

The Hundred-Kilobyte Kernel (HK2) provides a module system and component model for building complex software systems. HK2 forms the core of GlassFish Server's architecture.

My guess is that the dependency isn't even needed at runtime for the purpose of this plugin. I might try to exclude some stuff over the weekend.

@bmuschko bmuschko added this to the v4.6.2 milestone Mar 9, 2019
@bmuschko
Copy link
Owner

bmuschko commented Mar 9, 2019

I made the relevant change and will release a new version soon: d5ed424

@bmuschko bmuschko closed this as completed Mar 9, 2019
@bmuschko
Copy link
Owner

bmuschko commented Mar 9, 2019

This has been released. Let us know should it not work for you.

@segator
Copy link

segator commented Mar 11, 2019

Same Issue tried with 4.6.1 and 4.6.2
#765

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants