tynamo/tapestry-conversations

Coversations always create an HTTP session

Closed this issue · 0 comments

Celos commented

ConversationManagerImpl#activateConversation is called for every Tapestry component and page render request. It contains the following lines:

conversationId = cookies.readCookieValue(pageName.toLowerCase() + Keys._conversationId);
Conversation conversation = getConversations().get(conversationId);

Meaning that regardless whether the cookie is set or not, getConversations is called. That in turn calls request.getSession(true), meaning all requests, regardless if any conversation actually needs to be activated, create a session.

The same thing also happens later on in the method: endConversationIfIdle doesn't check if its input is null.