[ 
https://issues.apache.org/jira/browse/ORCHESTRA-14?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557582#action_12557582
 ] 

Simon Kitching commented on ORCHESTRA-14:
-----------------------------------------

Hmm..still works for me in Tomcat 5.5.25 as well.

I enhanced ConversationContextSessionListener.removeAttribute as follows:

public void attributeRemoved(HttpSessionBindingEvent event)
{
  log.fatal("Removing attribute " + event.getName());
  try {
     HttpSession session = event.getSession();
     session.getId();
     log.fatal("IllegalStateException not thrown in attributeRemoved");
  } catch(IllegalStateException e) {
     log.fatal("IllegalStateException thrown in attributeRemoved");
  }
  ....

And in all the three tested cases (tomcat 5.5.25, tomcat 6.0.15, jetty 6.1.1) I 
get this:

10.01.2008 10:32:42 
org.apache.myfaces.orchestra.conversation.servlet.ConversationManagerSessionListener
 attributeRemoved
SCHWERWIEGEND: Removing attribute jsf_sequence
10.01.2008 10:32:42 
org.apache.myfaces.orchestra.conversation.servlet.ConversationManagerSessionListener
 attributeRemoved
SCHWERWIEGEND: IllegalStateException not thrown in attributeRemoved
10.01.2008 10:32:42 
org.apache.myfaces.orchestra.conversation.servlet.ConversationManagerSessionListener
 attributeRemoved
SCHWERWIEGEND: Removing attribute org.apache.myfaces.ConversationManager
10.01.2008 10:32:42 
org.apache.myfaces.orchestra.conversation.servlet.ConversationManagerSessionListener
 attributeRemoved
SCHWERWIEGEND: IllegalStateException not thrown in attributeRemoved

Thomas, do you have any idea why you might be seeing problems with 
session.getId() when I am not?


> ConversationManagerSessionListener leak & IllegalStateException
> ---------------------------------------------------------------
>
>                 Key: ORCHESTRA-14
>                 URL: https://issues.apache.org/jira/browse/ORCHESTRA-14
>             Project: MyFaces Orchestra
>          Issue Type: Bug
>          Components: Conversation
>    Affects Versions: 1.1
>         Environment: tomcat 5
>            Reporter: Thomas Spiegl
>            Assignee: Thomas Spiegl
>             Fix For: 1.1
>
>
> ConversationManagerSessionListener has serveral issues:
> 1) attributeReplaced sets the old instance of conversationManager in 
> conversationWiperThread instead of the new one
> 2) on session expire ConversationManagerSessionListener.attributeRemoved is 
> getting called and session.getId() throws IllegalStateException
> 3) ConversationManagerSessionListener.sessionDestroyed will throw a 
> IllegalStateException as well -> method is useless
> Solution:
> 1) use a unique id for conversationManager instead of session.getId() as a 
> key in conversationWiperThread
> 2) remove HttpSessionListener interface from 
> ConversationManagerSessionListener

-- 
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