Bug 32898 - Cluster restart fails
Summary: Cluster restart fails
Status: RESOLVED FIXED
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Catalina:Cluster (show other bugs)
Version: 5.0.30
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-12-31 01:34 UTC by Dave Hodson
Modified: 2005-02-25 13:41 UTC (History)
0 users



Attachments
5.0.28 cluster jar with fix (120.64 KB, application/octet-stream)
2005-02-25 22:40 UTC, Filip Hanik
Details
Source code fix (34.50 KB, text/plain)
2005-02-25 22:41 UTC, Filip Hanik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Hodson 2004-12-31 01:34:58 UTC
I have two machines in a cluster configuration. An initial start of each works
properly, with sessions being shared, etc. Stopping one Tomcat instance works
and I can continue as the other Tomcat instance also has my session.

However, when I restart the stopped Tomcat instance, it refuses to load the
context (in my case, an app named "Config").  

It seems to be complaining about a ClassNotFound exception for
util.MessageResourcesFactory  - MessageResourcesFactory.createFactory, however,
this class is found on the initial startup (before shutdown) and I am able have
session replicate initially also.

Stack trace (restart) below:

0 [main] INFO http11.Http11Protocol  - Initializing Coyote HTTP/1.1 on http-8080
45 [main] INFO startup.Catalina  - Initialization processed in 1350 ms
229 [main] INFO core.StandardService  - Starting service Catalina
234 [main] INFO core.StandardEngine  - Starting Servlet Engine: Apache Tomcat/5.0.30
252 [main] INFO core.StandardHost  - XML validation disabled
253 [main] INFO tcp.SimpleTcpCluster  - Cluster is about to start
285 [main] INFO mcast.McastService  - Sleeping for 2000 secs to establish
cluster membership
668 [Cluster-MembershipReceiver] INFO tcp.SimpleTcpCluster  - Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://10.20.1.30:4001,10.20.1.30,4001,
alive=100380]
2289 [main] INFO core.StandardHost  - Create Host deployer for direct deployment
( non-jmx )
2298 [main] INFO deploy.FarmWarDeployer  - Cluster FarmWarDeployer started.
2320 [main] INFO core.StandardHostDeployer  - Processing Context configuration
file URL file:/home/jakarta-tomcat-5.0.30/conf/Catalina/localhost/admin.xml
4572 [main] INFO core.StandardHostDeployer  - Processing Context configuration
file URL file:/home/jakarta-tomcat-5.0.30/conf/Catalina/localhost/balancer.xml
4756 [main] INFO core.StandardHostDeployer  - Processing Context configuration
file URL file:/home/jakarta-tomcat-5.0.30/conf/Catalina/localhost/config.xml




Creating ClusterManager for context /config using class
org.apache.catalina.cluster.session.DeltaManager




4925 [main] INFO session.DeltaManager  - Starting clustering manager...:/config
5282 [org.apache.catalina.cluster.tcp.TcpReplicationThread[1]] ERROR
util.MessageResourcesFactory  - MessageResourcesFactory.createFactory
java.lang.ClassNotFoundException:
org.apache.struts.util.PropertyMessageResourcesFactory
	at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:854)
	at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:721)
	at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:119)
	at
org.apache.struts.util.MessageResourcesFactory.createFactory(MessageResourcesFactory.java:150)
	at
org.apache.struts.util.MessageResources.getMessageResources(MessageResources.java:495)
	at net.messagecast.common.ConfigConstants.<clinit>(Unknown Source)
	at config.general.CommonForm.<clinit>(Unknown Source)
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at java.util.ArrayList.readObject(ArrayList.java:547)
	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:324)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at
org.apache.catalina.cluster.session.DeltaSession.readObject(DeltaSession.java:1413)
	at
org.apache.catalina.cluster.session.DeltaSession.readObjectData(DeltaSession.java:913)
	at org.apache.catalina.cluster.session.DeltaManager.doLoad(DeltaManager.java:448)
	at
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:868)
	at
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:765)
	at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleTcpCluster.java:580)
	at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:70)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:129)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:67)
java.lang.ExceptionInInitializerError
	at config.general.CommonForm.<clinit>(Unknown Source)
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at java.util.ArrayList.readObject(ArrayList.java:547)
	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:324)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at
org.apache.catalina.cluster.session.DeltaSession.readObject(DeltaSession.java:1413)
	at
org.apache.catalina.cluster.session.DeltaSession.readObjectData(DeltaSession.java:913)
	at org.apache.catalina.cluster.session.DeltaManager.doLoad(DeltaManager.java:448)
	at
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:868)
	at
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:765)
	at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleTcpCluster.java:580)
	at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:70)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:129)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:67)
Caused by: java.lang.NullPointerException
	at
org.apache.struts.util.MessageResources.getMessageResources(MessageResources.java:498)
	at net.messagecast.common.ConfigConstants.<clinit>(Unknown Source)
	... 34 more
19957 [main] WARN tcp.SocketSender  - Wasn't able to read acknowledgement from
server[/10.20.1.30:4001] in 15000 ms. Disconnecting socket, and trying again.
java.lang.NoClassDefFoundError
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at java.util.ArrayList.readObject(ArrayList.java:547)
	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:324)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at
org.apache.catalina.cluster.session.DeltaSession.readObject(DeltaSession.java:1413)
	at
org.apache.catalina.cluster.session.DeltaSession.readObjectData(DeltaSession.java:913)
	at org.apache.catalina.cluster.session.DeltaManager.doLoad(DeltaManager.java:448)
	at
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:868)
	at
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:765)
	at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleTcpCluster.java:580)
	at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:70)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:129)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:67)
java.lang.NoClassDefFoundError
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at java.util.ArrayList.readObject(ArrayList.java:547)
	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:324)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at
org.apache.catalina.cluster.session.DeltaSession.readObject(DeltaSession.java:1413)
	at
org.apache.catalina.cluster.session.DeltaSession.readObjectData(DeltaSession.java:913)
	at org.apache.catalina.cluster.session.DeltaManager.doLoad(DeltaManager.java:448)
	at
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:868)
	at
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:765)
	at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleTcpCluster.java:580)
	at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:70)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:129)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:67)
34967 [main] WARN tcp.SocketSender  - Wasn't able to read acknowledgement from
server[/10.20.1.30:4001] in 15000 ms. Disconnecting socket, and trying again.
34967 [main] WARN tcp.ReplicationTransmitter  - Unable to send replicated
message, is server down?
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.net.SocketInputStream.read(SocketInputStream.java:182)
	at org.apache.catalina.cluster.tcp.SocketSender.waitForAck(SocketSender.java:134)
	at org.apache.catalina.cluster.tcp.SocketSender.sendMessage(SocketSender.java:125)
	at
org.apache.catalina.cluster.tcp.PooledSocketSender.sendMessage(PooledSocketSender.java:119)
	at
org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageData(ReplicationTransmitter.java:117)
	at
org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:136)
	at org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:461)
	at org.apache.catalina.cluster.session.DeltaManager.start(DeltaManager.java:649)
	at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499)
	at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:310)
	at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:638)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)
	at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4270)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
	at
org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:903)
	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:324)
	at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
	at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
	at org.apache.commons.digester.Rule.end(Rule.java:276)
	at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
	at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:76)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
Source)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1567)
	at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488)
	at org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:483)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
	at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
	at org.apache.catalina.core.StandardService.start(StandardService.java:480)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
	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:324)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
34969 [main] WARN session.DeltaManager  - Manager[/config], requesting session
state from
org.apache.catalina.cluster.mcast.McastMember[tcp://10.20.1.30:4001,10.20.1.30,4001,
alive=134550]. This operation will timeout if no session state has been received
within 60 seconds
java.lang.NoClassDefFoundError
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at java.util.ArrayList.readObject(ArrayList.java:547)
	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:324)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
	at
org.apache.catalina.cluster.session.DeltaSession.readObject(DeltaSession.java:1413)
	at
org.apache.catalina.cluster.session.DeltaSession.readObjectData(DeltaSession.java:913)
	at org.apache.catalina.cluster.session.DeltaManager.doLoad(DeltaManager.java:448)
	at
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:868)
	at
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:765)
	at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleTcpCluster.java:580)
	at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:70)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:129)
	at
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:67)
Comment 1 Filip Hanik 2005-02-09 15:58:03 UTC
During a state transfer, I am now setting the context class loader correctly, so
that static methods like struts can load their classes properly.
Comment 2 Darian 2005-02-16 08:31:45 UTC
I am also having this problem, can you clarify the fix?  Is this a code change,
if so is a patch avail or can you direct me to the classes you modified?  I
tried 5.0.30 and had the same problem.

Comment 3 Filip Hanik 2005-02-25 22:40:25 UTC
Created attachment 14364 [details]
5.0.28 cluster jar with fix

Library with updated file for 5.0.28 attached
Comment 4 Filip Hanik 2005-02-25 22:41:34 UTC
Created attachment 14365 [details]
Source code fix

Modified source code attached