ConversationManager instances leak when using OC4J servlet engine
-----------------------------------------------------------------

                 Key: ORCHESTRA-35
                 URL: https://issues.apache.org/jira/browse/ORCHESTRA-35
             Project: MyFaces Orchestra
          Issue Type: Bug
          Components: Conversation
    Affects Versions: 1.3
            Reporter: Simon Kitching
            Priority: Minor


As reported by Steve Ronderos, the OC4J servlet container does not call 
removeAttribute on session attributes when the session is invalidated. This 
means that the ConversationManagerSessionListener does not remove 
ConversationManager instances from the ConversationWiperThread when the owning 
session is destroyed.

This is possibly a bug in OC4J; the servlet specs aren't entirely clear what 
should happen when a session is invalidated but it seems that the 
HttpSessionBindingListener javadoc does imply that removeAttribute should be 
called. Apache Tomcat certainly does call removeAttribute (see method 
StandardSession.removeAttributeInternal for details).

Regardless of whether this is a servlet-engine bug or not, this is something 
that it would be nice to handle.

One option would be to use weak references in the ConversationWiperThread. 
Another would be for ConversationManagerSessionListener to implement the 
HttpSessionListener interface and use the sessionDestroyed callback to scan for 
ConversationManager instances and remove them from the wiper thread.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to