This is also not during Tomcat startup. Initially I suspected it might be because the Configuration hadn't been initialized on all of the nodes, but that doesn't seem to be the case. It's hard to debug on a cluster :)
Right now I've changed to debug on STABLE-1.2 HEAD. The NPE is on line 1807 there. I'll let you know if I find anything Cris On 12/1/06, Andrus Adamchik <[EMAIL PROTECTED]> wrote:
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.messageRece > ived(ClusterSessionListener.java:85) > at org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive > (SimpleTcpCluster.java:1167) > at > org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceive > 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) >