Hi Cris,
I am leaving to catch the train now. I'll take a look over the
weekend. This is strange indeed - we had issues in the past on
deserialization during Tomcat startup, but those were due to
ClassLoaders not being in the right state. This scenario is
different.
Andrus
On Dec 1, 2006, at 6:48 PM, Cris Daniluk wrote:
> I've turned on Tomcat clustering on an existing application, and
thus
> the session-bound user DataContext is being serialized across the
> wire. Whenever I connect to a Tomcat node, the nodes that are
> replicated to report the attached exception. Based on the line
number
> (Cayenne 1.2.1), it looks like the objectStore has null elements in
> it, which does not make any sense.
>
> Any ideas?
>
> Cris
>
>
> ERROR [org.apache.catalina.cluster.tcp.TcpReplicationThread[1]] -
> 2006-12-01 10:44:42,264 Manager [/integration]: Unable to receive
> message through TCP channel
> java.lang.NullPointerException
> at org.objectstyle.cayenne.access.DataContext.readObject
> (DataContext.java:1806)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at java.io.ObjectStreamClass.invokeReadObject
> (ObjectStreamClass.java:946)
> at java.io.ObjectInputStream.readSerialData
> (ObjectInputStream.java:1809)
> at java.io.ObjectInputStream.readOrdinaryObject
> (ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0
> (ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.defaultReadFields
> (ObjectInputStream.java:1908)
> at java.io.ObjectInputStream.readSerialData
> (ObjectInputStream.java:1832)
> at java.io.ObjectInputStream.readOrdinaryObject
> (ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0
> (ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.defaultReadFields
> (ObjectInputStream.java:1908)
> at java.io.ObjectInputStream.readSerialData
> (ObjectInputStream.java:1832)
> at java.io.ObjectInputStream.readOrdinaryObject
> (ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0
> (ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject
> (ObjectInputStream.java:348)
> at org.apache.catalina.cluster.session.DeltaRequest
> $AttributeInfo.readExternal(DeltaRequest.java:334)
> at
> org.apache.catalina.cluster.session.DeltaRequest.readExternal
> (DeltaRequest.java:246)
> at
> org.apache.catalina.cluster.session.DeltaManager.loadDeltaRequest
> (DeltaManager.java:697)
> at
>
org.apache.catalina.cluster.session.DeltaManager.handleSESSION_DELTA
> (DeltaManager.java:1572)
> at
> org.apache.catalina.cluster.session.DeltaManager.messageReceived
> (DeltaManager.java:1522)
> at
>
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived
> (DeltaManager.java:1271)
> at
>
org.apache.catalina.cluster.session.ClusterSessionListener.messageRec
e
> ived(ClusterSessionListener.java:85)
> at org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive
> (SimpleTcpCluster.java:1167)
> at
>
org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceiv
e
> d(ClusterReceiverBase.java:426)
> at org.apache.catalina.cluster.io.ObjectReader.execute
> (ObjectReader.java:107)
> at
> org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel
> (TcpReplicationThread.java:138)
> at org.apache.catalina.cluster.tcp.TcpReplicationThread.run
> (TcpReplicationThread.java:69)
>