[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


     [ https://issues.jboss.org/browse/JBMESSAGING-1958?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yong Hao Gao reassigned JBMESSAGING-1958:
-----------------------------------------

    Assignee: Yong Hao Gao


> 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.0.SP3.CP14, 1.4.8.SP11
>            Reporter: Yong Hao Gao
>            Assignee: 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