I have an event listener with an End attribute on it inside of a conversation scoped
bean:
@Observer(UserContextUtils.APP_SET_CHANGE_EVENT_NAME)
| @End
| public void currentViewAppSetChanged(CurrentViewApplicationSetChangeEvent evt)
{...}
There is no nested conversation when this method is fired. I was assuming that the long
running conversation for this been would be ended and when this bean would be hit again a
new instance would be created. Instead, nothing happens and my member variables are all
still intact with the values from the previous conversation.
Here is the code flow:
pages.xml causes a load method to be invoked on a conversation bean marked with
"@Begin(join=true)". This load method instantiates and loads data into a custom
DataModel member variable.
User causes the event to fire which calls the method above with "@End". When the
page is re-rendered, the data model is not null as expected and the user is displayed a
old list of data.
From my log, here is what happens during the event:
16:03:51,304
DEBUG [LiveReportBean] Received application set change event. Old: COPY, New: APSHELL
| 16:03:51,305 DEBUG [Manager] Ending long-running conversation
| 16:03:51,305 DEBUG [Manager] Storing conversation state: 95
| 16:03:51,309 DEBUG [DebugPhaseListener] The phase INVOKE_APPLICATION(5) has
completed.
Here is the rendering of the next page:
16:03:51,902 DEBUG [DebugPhaseListener] The phase RESTORE_VIEW(1) is about to start.
| 16:03:51,903 DEBUG [Manager] Found conversation id in request parameter: 95
| 16:03:51,903 DEBUG [Manager] Restoring conversation with id: 95
As you can see, although conversation #95 was ended, it is still open on the next
request.
I am using Seam 1.1
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005521#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...