[jboss-jira] [JBoss JIRA] (JBMESSAGING-1958) Backward compatibility issue caused by recent fixes
Yong Hao Gao (JIRA)
issues at jboss.org
Wed Dec 16 08:12:00 EST 2015
Yong Hao Gao created JBMESSAGING-1958:
-----------------------------------------
Summary: Backward compatibility issue caused by recent fixes
Key: JBMESSAGING-1958
URL: https://issues.jboss.org/browse/JBMESSAGING-1958
Project: JBoss Messaging
Issue Type: Bug
Components: JMS Remoting
Affects Versions: 1.4.8.SP11, 1.4.0.SP3.CP14
Reporter: Yong Hao Gao
Fix For: 1.4.0.SP3.CP15, 1.4.8.SP12
In the following Jiras:
https://issues.jboss.org/browse/JBMESSAGING-1851
https://issues.jboss.org/browse/JBMESSAGING-1876
We've added three more fields in ClientConnectionFactoryDelegate
private long maxRetryChangeRate;
private long retryChangeRateInterval;
private long minTimeoutProcessTime;
This will cause backward compatibility issues when JBM server talks to old clients that are not aware of those changes. To those old clients the three fields are marshalled but never read by client. This will cause marshal problems as shown in the following example stack trace:
20:08:46,052 INFO [MicroSocketClientInvoker] SocketClientInvoker[47f6473, bisocket://127.0.0.2:4457] got exception java.io.IOException
20:08:46,054 ERROR [SocketClientInvoker] Got marshalling exception, exiting
java.io.IOException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at java.io.DataInputStream.readUTF(DataInputStream.java:609)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at org.jboss.messaging.util.Version.read(Version.java:251)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.read(ClientConnectionFactoryDelegate.java:348)
at org.jboss.jms.delegate.TopologyResult.read(TopologyResult.java:123)
at org.jboss.jms.wireformat.ConnectionFactoryGetTopologyResponse.read(ConnectionFactoryGetTopologyResponse.java:70)
at org.jboss.jms.wireformat.JMSWireFormat.read(JMSWireFormat.java:303)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:917)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:603)
at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:422)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:141)
at org.jboss.remoting.Client.invoke(Client.java:1858)
at org.jboss.remoting.Client.invoke(Client.java:718)
at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientClusteredConnectionFactoryDelegate$getTopology$aop(ClientClusteredConnectionFactoryDelegate.java:326)
at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate.getTopology(ClientClusteredConnectionFactoryDelegate.java)
at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate.establishCallback(ClientClusteredConnectionFactoryDelegate.java:105)
at org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate.readObject(ClientClusteredConnectionFactoryDelegate.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.rmi.MarshalledObject.get(MarshalledObject.java:160)
at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:737)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:654)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at org.jms.client.JMSClient.getFactory(JMSClient.java:147)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list