[jboss-jira] [JBoss JIRA] (AS7-5722) Backward compatibility issue with JMS clients

Jeff Mesnil (JIRA) jira-events at lists.jboss.org
Thu Oct 11 09:57:03 EDT 2012


    [ https://issues.jboss.org/browse/AS7-5722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12725596#comment-12725596 ] 

Jeff Mesnil commented on AS7-5722:
----------------------------------

HornetQ has changed its implementation of the JMS connection factory in 2.3.0.BETA1 to be able to support JGroups.

This means that an older version of HornetQ will not be able to lookup a JMS CF from a 2.3.0.BETA1 server (because of missing classes).

Wrt to AS7, this means that a 7.1.x jboss-client jar (bundling HornetQ 2.2.x client code) will *not* be able to lookup JMS resources from a 7.2.x server (bundling HornetQ 2.3.x server).

                
> Backward compatibility issue with JMS clients
> ---------------------------------------------
>
>                 Key: AS7-5722
>                 URL: https://issues.jboss.org/browse/AS7-5722
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: JMS
>            Reporter: Miroslav Novak
>            Assignee: Jeff Mesnil
>             Fix For: 7.2.0.Alpha1
>
>
> When standalone jms client is trying to connect with "old" jboss-client.jar from AS 7.1.2.Final (HornetQ 2.2.16.Final) to AS 7.2.0.Alpha1 (HornetQ 2.3.0.Beta1) then ClassNotFoundException it thrown:
> Console log of jms client:
> {code}
> [jbossqa at station4 as7-with-hq-replicated]$ java -cp /home/jbossqa/hornetq_eap6_testsuite/as7-with-hq-replicated/client-1.0-SNAPSHOT.jar:/home/jbossqa/hornetq_eap6_testsuite/server1/jboss-eap-6.0/bin/client/jboss-client.jar org.jboss.jms.client.TestProducer 192.168.40.1 jms/queue/testQueue0 10
> remote://192.168.40.1:4447
> Oct 10, 2012 11:44:41 AM org.xnio.Xnio <clinit>
> INFO: XNIO Version 3.0.6.GA-redhat-1
> Oct 10, 2012 11:44:41 AM org.xnio.nio.NioXnio <clinit>
> INFO: XNIO NIO Implementation Version 3.0.6.GA-redhat-1
> Oct 10, 2012 11:44:41 AM org.jboss.remoting3.EndpointImpl <clinit>
> INFO: JBoss Remoting version 3.2.8.SP1-redhat-1
> Oct 10, 2012 11:44:42 AM org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1$MessageReceiver handleEnd
> ERROR: Channel end notification received, closing channel Channel ID f6fa08e1 (outbound) of Remoting connection 2a0ab444 to /192.168.40.1:4447
> org.jboss.naming.remote.protocol.NamingIOException: Failed to lookup [Root exception is java.io.IOException: java.lang.ClassNotFoundException: org.hornetq.api.core.BroadcastEndpointFactoryConfiguration]
> 	at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:49)
> 	at org.jboss.naming.remote.protocol.v1.Protocol$1.execute(Protocol.java:104)
> 	at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1.lookup(RemoteNamingStoreV1.java:78)
> 	at org.jboss.naming.remote.client.HaRemoteNamingStore$1.operation(HaRemoteNamingStore.java:227)
> 	at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:119)
> 	at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:223)
> 	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:79)
> 	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:83)
> 	at javax.naming.InitialContext.lookup(InitialContext.java:409)
> 	at org.jboss.jms.client.TestProducer.startClient(TestProducer.java:47)
> 	at org.jboss.jms.client.TestProducer.main(TestProducer.java:28)
> Caused by: java.io.IOException: java.lang.ClassNotFoundException: org.hornetq.api.core.BroadcastEndpointFactoryConfiguration
> 	at org.jboss.naming.remote.protocol.v1.Protocol$1$3.read(Protocol.java:159)
> 	at org.jboss.naming.remote.protocol.v1.BaseProtocolCommand.readResult(BaseProtocolCommand.java:60)
> 	at org.jboss.naming.remote.protocol.v1.Protocol$1.handleClientMessage(Protocol.java:149)
> 	at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1$MessageReceiver$1.run(RemoteNamingStoreV1.java:210)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.ClassNotFoundException: org.hornetq.api.core.BroadcastEndpointFactoryConfiguration
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:264)
> 	at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:135)
> 	at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:116)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:871)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:903)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:903)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1205)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1678)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1594)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1558)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1236)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
> 	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
> 	at org.jboss.naming.remote.protocol.v1.Protocol$1$3.read(Protocol.java:156)
> 	... 6 more
> Oct 10, 2012 11:44:42 AM org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1$MessageReceiver handleEnd
> ERROR: Channel end notification received, closing channel Channel ID dac0f594 (outbound) of Remoting connection 16e1eea8 to /192.168.40.1:4447
> {code}
> How to reproduce:
> 1) Download reproducer.zip from QA Lab and unzip reproducer.zip: {code}scp -r messaging-18.jbm.lab.bos.redhat.com:/home/mnovak/reproducer-backward-compatibility .{code}
> 2) Start AS7 server:{code}cd jboss-as-7.2.0.Alpha1-SNAPSHOT/bin;sh standalone.sh -c standalone-full-ha.xml -b localhost{code}
> 3) Start jms producer:{code}java -cp $PWD/client-1.0-SNAPSHOT.jar:$PWD/jboss-old-hq226-client.jar org.jboss.jms.client.TestProducer localhost jms/queue/testQueue0 10{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list