-
1. Re: Invalidating Seam sessions when logging out of JBoss Por
gavin.king Feb 9, 2007 4:21 PM (in response to endremr)Um ... doesn't SeamListener get called?
-
2. Re: Invalidating Seam sessions when logging out of JBoss Por
michaelsembwever Feb 10, 2007 7:17 AM (in response to endremr)I posted the other thread. The two threads identify the same problem.
Yes SeamListener is being called.
My application's conversation and context is being removed (from LifeCycle.java) but still my Seam EJB3s (and underlying EJB3s) are not removed!
(They are removed some time later, up until 30 minutes later!) -
3. Re: Invalidating Seam sessions when logging out of JBoss Por
gavin.king Feb 10, 2007 10:46 AM (in response to endremr)So debug into SeamListener.contextDestroyed() and find out why the @Remove methods of your SFSBs do not get called.
-
4. Re: Invalidating Seam sessions when logging out of JBoss Por
michaelsembwever Feb 12, 2007 5:48 AM (in response to endremr)Thanks for the help Gavin!
In LifeCycle.endSession(..):
Set conversationIds = Manager.instance().getSessionConversationIds();
is returning an empty Set so
Contexts.destroy(new ServerConversationContext(..))
is never called for any conversationId. -
5. Re: Invalidating Seam sessions when logging out of JBoss Por
michaelsembwever Feb 12, 2007 5:52 AM (in response to endremr)Another unexpected, atleast for me, discovery is that LifeCycle.endSession(..) is called twice during the logout request. Is this correct?
-
6. Re: Invalidating Seam sessions when logging out of JBoss Por
gavin.king Feb 12, 2007 9:25 AM (in response to endremr)That's probably correct. Portal does everything in two requests - a request, then a redirect. Are you certain that you actually have some long-running conversations active on the server? If so, why can't Manager find them?
-
7. Re: Invalidating Seam sessions when logging out of JBoss Por
michaelsembwever Feb 13, 2007 5:36 AM (in response to endremr)We're using seam 1.0.1 on jboss 4.0.4
I've tried having both
@Scope(ScopeType.SESSION)
and
@Conversational(ifNotBegunOutcome="front")
on my seam class. Neither are removed when I log out.
And to answer your question:
When LifeCycle.endSession(..) is called from the LoginPortlet Manager.instance has no (or empty) currentConversationId, currentConversationIdStack, conversationIdEntryMap.
When my seam portlet performs actions Manager.instance contains a conversation.