Um ... doesn't SeamListener get called?
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!)
So debug into SeamListener.contextDestroyed() and find out why the @Remove methods of your SFSBs do not get called.
Thanks for the help Gavin!
Set conversationIds = Manager.instance().getSessionConversationIds();
is returning an empty Set so
is never called for any conversationId.
Another unexpected, atleast for me, discovery is that LifeCycle.endSession(..) is called twice during the logout request. Is this correct?
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?
We're using seam 1.0.1 on jboss 4.0.4
I've tried having both
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.