tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Dalquist <edalqu...@unicon.net>
Subject Change in StandardManager breaks SimpleTcpReplicationManager (TC5.5.9)
Date Wed, 22 Jun 2005 18:33:50 GMT
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: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message