On 26 Aug 2011, at 07:20, Nicklas Karlsson wrote:
Some conversation-related questions
1. In WeldPhaseListener.activateConversations(), it appears as if the conversation
context is never activated if an unknown cid comes in. Shouldn't the conversation
context still be active but with a transient conversation? Moving the
conversationContext.activate(cid); before the check might work.
Yes, this is a bug, and I think there is already a JIRA for this.
2. Is there any way of setting the conversation timeout globally? The constant defined in
AbstractConversationContext appears to be injected into the constructor of the
ConversationImpl. If it would be acquired from a producer method, could it then be
specialized?
ConversationContext.setDefaultTimeout()
3. Should we have a concept of a "foreground conversation" in Weld so that an
incoming cid to a known, non-transient conversation would resurrect the conversation even
if it has been expired (but not yet cleaned up)?
We could do, but I don't think this is much to do with foreground conversations. File
a feature request.
If I read the code correctly, a cid that comes in after the expire
time has passed is still taken into use for the request but at the end marked as ended and
then cleaned up as transient.
This sounds odd, so probably worth removing in favour of the behavior you describe.