http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27296
Thank you for making excellent software.
p.s. i'd also like to just say thanks to person(s) reponsible for the main build.xml file which made getting and building tomcat such a breeze.
Filip Hanik (lists) wrote:
thanks for the very diligent email, open a bug, and I will address this issue shortly.
thank you for helping us make better software
Filip
-----Original Message----- From: Aadi Deshpande [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 25, 2004 10:36 PM To: Tomcat Users List Subject: Re: Cluster error when starting up web application
Upon further research, it seems that DeltaSession.setId() fires the sessionCreated events to registered listeners, but this happens before a session is declared valid ( i.e. setValid(true) has not been called ).
so when a registered listener tries to utilize ( what it seems to believe is ) a newly created session, the setAttribute method throws the IllegalStateException..
Now I don't know too much about how the actual workings of the HttpSession should go, but in my opinion, the sessionCreated events should not be fired unless a valid session has been created. which seems to imply that maybe setValid() should doing the firing...
However, that doesn't sit well with me since it doesn't make sense for a session to be truly valid unless it has a sessionId, which either forces there to be an implict order between setId() and setValid() which is no good, requiring that either/or check to see if the other has been truly satisfied, and setting up some sort of implicit sequence coupling.
the alternative, as I see it, is move the tellNew() invocation to the DeltaManager ( it's declared public, so it's already exposed ).
I tried that, by patching up the TC5 sources and it seemed to resolve the issue.
Again, as I know little to nothing of how sessions should work and what other implications this refactoring may have, what should be my next course of action?
Should I contact the webwork people? Is this not correct use of sessions and session listeners?
Should I open up a bug and/or propose my patch?
Thanks in advance for reading and/or responding,
-a
Aadi Deshpande wrote:
Hi,org.apache.catalina.cluster.session.DeltaSession.setAttribute(DeltaSession.j
I just got Tomcat 5.0.19 and after setting up the new delta based cluster manager, i get this during the startup my application :
SEVERE: Session event listener threw exception java.lang.IllegalStateException: setAttribute: Session already invalidated at
ava:1306)
atorg.apache.catalina.cluster.session.DeltaSession.setAttribute(DeltaSession.j
ava:1283)
atorg.apache.catalina.cluster.session.DeltaSessionFacade.setAttribute(DeltaSes
sionFacade.java:17
com.opensymphony.webwork.lifecycle.SessionLifecycleListener.sessionCreated(S7) at
essionLifecycleLis
org.apache.catalina.cluster.session.DeltaSession.tellNew(DeltaSession.java:4tener.java:50) at
59)
atorg.apache.catalina.cluster.session.DeltaSession.setId(DeltaSession.java:431
)
atorg.apache.catalina.cluster.session.DeltaManager.createSession(DeltaManager.
java:377)
atorg.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManage
r.java:895)
atorg.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaMa
nager.java:794)
atorg.apache.catalina.cluster.tcp.SimpleTcpCluster.messageDataReceived(SimpleT
cpCluster.java:561
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplica) at org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:117)
at
tionThread.java:17
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThrea6) at
d.java:114)
com.opensymphony.webwork.lifecycle.SessionLifecycleListener</listener-class>
As far as I can tell, it's happening when I request a page that has the webwork2 RequestLifecycleFilter set for that url pattern. The doFilter function creates a HttpSession if none exists, which I assume calls the SessionLifecycleListener.sessionCreated(), but for some reason, it seems like the session is being invalidated prematurely..
Here's the relevant piece from my web.xml : <filter> <filter-name>container</filter-name> <filter-class>
com.opensymphony.webwork.lifecycle.RequestLifecycleFilter</filter-class> </filter> <filter-mapping> <filter-name>container</filter-name> <url-pattern>/*</url-pattern> <!-- modify appropriately --> </filter-mapping> <listener> <listener-class>
com.opensymphony.webwork.lifecycle.ApplicationLifecycleListener</listener-cl</listener> <listener> <listener-class>
ass>
</listener>
and from my server.xml file, taken pretty much verbatim from the default server.xml:
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true">
<Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="224.64.64.128" mcastPort="45600" mcastFrequency="500" mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4060" tcpSelectorTimeout="100" tcpThreadCount="3"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
</Cluster>
Anyone know what's going on? Or can provide some insight into what I may be missing?
Thanks for any info.
-a
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.594 / Virus Database: 377 - Release Date: 2/24/2004
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.594 / Virus Database: 377 - Release Date: 2/24/2004
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]