[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-2377) Conversation Switcher broken when using Explicit Conversations
Pete Muir (JIRA)
jira-events at lists.jboss.org
Thu Dec 13 20:03:51 EST 2007
[ http://jira.jboss.com/jira/browse/JBSEAM-2377?page=all ]
Pete Muir updated JBSEAM-2377:
------------------------------
Fix Version/s: 2.0.2.GA
> Conversation Switcher broken when using Explicit Conversations
> --------------------------------------------------------------
>
> Key: JBSEAM-2377
> URL: http://jira.jboss.com/jira/browse/JBSEAM-2377
> Project: JBoss Seam
> Issue Type: Bug
> Components: Core
> Reporter: Samuel Mendenhall
> Priority: Minor
> Fix For: 2.0.2.GA
>
>
> My test project consists of CatHome and KittenHome (hey, I like cats) with the respective entities, ect...
> On the create method of CatHome and KittenHome I have:
> @Begin(id="TheKittenConversation")
> @Begin(id="TheCatConversation")
> I have the standard conversation switcher syntax from the Docs. Now when I create a cat, then a kitten, then I go to switch back to the cat with the switcher, the page just refreshes and does not go anywhere. I did some debugging and the "actualOutcome" from the ./src/main/org/jboss/seam/faces/Switcher.java is the explicit id which in this case is "TheCatConversation". Ok, so the method returns this string, nothing happens, nothing is redirected, why would anything happen.
> However, if I just do @Begin instead of the explicit ids and rerun the project then this piece of code is hit and the redirect happens:
> else{
> ConversationEntry ce = ConversationEntries.instance().getConversationEntry(conversationIdOrOutcome);
> if (ce!=null)
> {
> resultingConversationIdOrOutcome = ce.getId();
> System.out.println("ce.getId(): " + ce.getId() + " redirection...");
> ce.redirect();
> }
> }
> But if I use explict, that is never encountered because isOutcome is true and the else is not evaluated:
> if (isOutcome)
> {
> resultingConversationIdOrOutcome = conversationIdOrOutcome;
> actualOutcome = conversationIdOrOutcome;
> }
> So I removed the if else completely and Explicit conversations and the conversation switcher worked perfect. The resulting select method looks like:
> public String select() {
> String actualOutcome;
> ConversationEntry ce = ConversationEntries.instance().getConversationEntry(conversationIdOrOutcome);
> if (ce!=null)
> {
> resultingConversationIdOrOutcome = ce.getId();
> ce.redirect();
> }
> actualOutcome = null;
> return actualOutcome;
> }
> which means the outcome returned will always be null, versus in the case of explicit conversations, be the explict conversation name.
--
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