[jbossseam-issues] [JBoss JIRA] Assigned: (JBSEAM-2124) Natural conversation ids are broken

Pete Muir (JIRA) jira-events at lists.jboss.org
Fri Nov 23 17:51:18 EST 2007

     [ http://jira.jboss.com/jira/browse/JBSEAM-2124?page=all ]

Pete Muir reassigned JBSEAM-2124:

    Assignee: Shane Bryzak  (was: Pete Muir)

Ok, I added s:conversationName

<s:conversationName value="foo" />

We can move this into s:conversationPropagation if you are happy to restrict valid conversation names somehow (e.g. can't contain a #) - I can't see any limit to the characters you can put into pageflow names.

I wrote org.jboss.seam.core.ConversationPropagation.getConversationNameFromRequestParameter() to set it into the conversationName property on ConversationPropagation.

Back to you :)

> Natural conversation ids are broken
> -----------------------------------
>                 Key: JBSEAM-2124
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2124
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0.CR2
>            Reporter: Shane Bryzak
>         Assigned To: Shane Bryzak
>            Priority: Blocker
>             Fix For: 2.0.1.GA
> When re-entering an existing conversation that uses a natural conversation id, we currently get a "Conversation id is already in use" exception like the following:
> Caused by: java.lang.IllegalStateException: Conversation id is already in use: PlaceBid:62748261
>         at org.jboss.seam.core.Manager.updateCurrentConversationId(Manager.java:90)
>         at org.jboss.seam.faces.FacesManager.beforeRedirect(FacesManager.java:73)
>         at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:164)
>         at org.jboss.seam.faces.Navigator.redirect(Navigator.java:91)
>         at org.jboss.seam.navigation.RedirectNavigationHandler.navigate(RedirectNavigationHandler.java:53)
>         at org.jboss.seam.navigation.Rule.execute(Rule.java:100)
>         at org.jboss.seam.navigation.Navigation.navigate(Navigation.java:123)
>         at org.jboss.seam.navigation.Pages.navigate(Pages.java:134)
>         at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigationHandler.java:83)
>         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:119)
>         at javax.faces.component.UICommand.broadcast(UICommand.java:383)
>         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
>         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
>         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
> The workaround for this is to specify the named conversation within the @Begin annotation for the action being called, like so:
> @Begin(join = true, conversation = "PlaceBid")
> public void placeBid() { 
> This way, ConversationInterceptor can redirect to the existing named conversation the same way it does a ce.redirect() for standard conversations.  However this is less than ideal, as we don't want to introduce yet another annotation attribute here if we can avoid it.  The preferred way of configuring this would be in a navigation rule in pages.xml:
>     <page view-id="/auction.xhtml">
>         <param name="id" value="#{auctionDetail.selectedAuctionId}"/>
>         <navigation from-action="#{bidAction.placeBid}">
>           <begin-conversation join="true" conversation="PlaceBid"/>
>           <redirect view-id="/bid.xhtml"/>
>         </navigation>
>     </page>
> The problem with this though is that it happens too late - conversation propagation defined in navigation rules like this get processed in ConversationControl.beginOrEndConversation(), after the action method has already been invoked thereby producing the same "Conversation id already in use" exception.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list