yi gong updated Bug WELD-1418
Change By: yi gong (27/Apr/13 12:22 PM)
Description: There's a race condition in AbstractConversationContext when create first conversation scope if it's the first request of one session.
Suppose such scenario
# User
 request  requests  a jsf page
# weld
 create  creates  a conversations map in the AbstractConversationContext.associate()
# Because it is the first request, there's no session. Weld keep this map in request
#
 Then  In  somewhere, a session is created
# In the render phase, server sends
 piratical  partial  response back. The page need some jsf resource, eg, jsf2 ajax or  jsf  resource
# Browser
 request  requests  the new jsf resource
# At this time
  The first request has not finished. So it doesn't reach dissociate() and doesn't put conversations map in the session.
# Meanwhile
  The second request reach associate(). There's no conversations map in the session, and the session is existing. It puts its new map! <====

# Then, even the first request finishes it's response and reach dissociate(), because there's already a map, it doesn't put its owner anymore. <====

A quick and dirty fix is always create session before associate(). However, it's better to merge the map in the dissociate()


Such page reference a conversation scoped bean


This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira