There was a change in the StandardManager class for Tomcat 5.5.9 that deprecated the createSession method and created the createSession(sessionId) method to allow emptySessionPath="true" to work. The SimpleTcpReplicationManager which subclasses StandardManager was not updated to reflect this change. Now if you try to use the SimpleTcpReplicationManager with the emptySessionPath="true" configuration set the follow exception is thrown:

ERROR org.apache.catalina.cluster.session.SimpleTcpReplicationManager - [Unable to replicate session] 2005-06-22 13:13:42,657
java.lang.ClassCastException: org.apache.catalina.session.StandardSession
at org.apache.catalina.cluster.session.SimpleTcpReplicationManager.requestCompleted(SimpleTcpReplicationManager.java:258) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:206) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Thread.java:595)

Doing some debugging it looks like "Request.doGetSession(boolean) line: 2204" calls "public Session createSession(String sessionId);" from the manager interface. Since SimpleTcpReplicationManager does not override this method but overrides the "public Session createSession();" method the call goes directly into the StandardManager which returns a StandardSession. When the SimpleTcpReplicationManager attempts to replicate this session later it fails when trying to cast it to ReplicatedSession.

I've created a bug in bugzilla for the problem: http://issues.apache.org/bugzilla/show_bug.cgi?id=35473

I'm going to try and get a fix working locally but I've never tried to compile tomcat before. Any help would be much appreciated.

-Eric Dalquist

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to