[ 
https://issues.apache.org/jira/browse/ARTEMIS-1783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jiri Daněk updated ARTEMIS-1783:
--------------------------------
    Priority: Trivial  (was: Critical)

> Exception in thread "main" java.lang.BootstrapMethodError: 
> java.lang.NoClassDefFoundError: com/google/common/base/Supplier
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1783
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1783
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.5.0
>            Reporter: Jiri Daněk
>            Priority: Trivial
>
> When using my program cli-artemis-jms at 
> https://github.com/rh-messaging/cli-java, which depends on 
> activemq-artemis-jms-client, I get the following stack trace
> {noformat}
> junit5(?) $ java -jar systemtests/client_executable/cli-artemis-jms.jar 
> receiver --address test --log-msgs json --count 0
> Exception in thread "main" java.lang.BootstrapMethodError: 
> java.lang.NoClassDefFoundError: com/google/common/base/Supplier
>         at 
> org.apache.activemq.artemis.core.message.impl.CoreMessageObjectPools.<init>(CoreMessageObjectPools.java:26)
>         at 
> org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.<init>(ClientPacketDecoder.java:36)
>         at 
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.createPacketDecoder(ActiveMQClientProtocolManager.java:520)
>         at 
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.connect(ActiveMQClientProtocolManager.java:412)
>         at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.establishNewConnection(ClientSessionFactoryImpl.java:1273)
>         at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:891)
>         at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:795)
>         at 
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:238)
>         at 
> org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:784)
>         at 
> org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:813)
>         at 
> org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:277)
>         at 
> org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:272)
>         at 
> com.redhat.mqe.acc.AccConnectionManager.<init>(AccConnectionManager.java:68)
>         at 
> com.redhat.mqe.acc.AccConnectionManagerFactory.make(AccConnectionManagerFactory.java:33)
>         at 
> com.redhat.mqe.acc.AccConnectionManagerFactory.make(AccConnectionManagerFactory.java:27)
>         at com.redhat.mqe.lib.CoreClient.createConnection(CoreClient.java:86)
>         at 
> com.redhat.mqe.lib.ReceiverClient.consumeMessage(ReceiverClient.java:170)
>         at 
> com.redhat.mqe.lib.ReceiverClient.startClient(ReceiverClient.java:147)
>         at com.redhat.mqe.lib.Main.main(Main.java:50)
>         at com.redhat.mqe.acc.Main.main(Main.java:74)
> Caused by: java.lang.NoClassDefFoundError: com/google/common/base/Supplier
>         ... 20 more
> Caused by: java.lang.ClassNotFoundException: com.google.common.base.Supplier
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 20 more
> {noformat}
> I get this with artemis-jms-client 2.5.0, but not with artemis-jms-client 
> 2.4.0.
> I believe the guilty commit is in ARTEMIS-1586, "794e56da99456e Refactor to 
> make more generic", which introduced usage of Google Guava, without adding it 
> to the package's pom file, causing my maven to miss that transitive 
> dependency when building uberjar.
> The command above runs when triggered from Intellij IDE, where the dependency 
> is on classpath, for some reason.
> Workaround is easy, add Guava to dependencies of your own program which is 
> using the artemis jms library.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to