DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35473>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35473

           Summary: Change in StandardManager breaks
                    SimpleTcpReplicationManager
           Product: Tomcat 5
           Version: 5.5.9
          Platform: Sun
        OS/Version: SunOS
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Catalina:Modules
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


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.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

Reply via email to