myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Kitching (JIRA)" <>
Subject [jira] Created: (ORCHESTRA-35) ConversationManager instances leak when using OC4J servlet engine
Date Fri, 02 Jan 2009 10:05:45 GMT
ConversationManager instances leak when using OC4J servlet engine

                 Key: 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.

View raw message