[seam-commits] Seam SVN: r7993 - trunk/src/main/org/jboss/seam/core.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Mon Apr 21 00:39:48 EDT 2008
Author: shane.bryzak at jboss.com
Date: 2008-04-21 00:39:48 -0400 (Mon, 21 Apr 2008)
New Revision: 7993
Modified:
trunk/src/main/org/jboss/seam/core/ConversationPropagation.java
Log:
didn't mean to include this
Modified: trunk/src/main/org/jboss/seam/core/ConversationPropagation.java
===================================================================
--- trunk/src/main/org/jboss/seam/core/ConversationPropagation.java 2008-04-21 04:10:06 UTC (rev 7992)
+++ trunk/src/main/org/jboss/seam/core/ConversationPropagation.java 2008-04-21 04:39:48 UTC (rev 7993)
@@ -101,25 +101,35 @@
private void restoreNaturalConversationId(Map parameters)
{
+ //First, try to get the conversation id from the request parameter defined for the page
String viewId = Pages.getCurrentViewId();
if ( viewId!=null )
{
- Page page = Pages.instance().getPage(viewId);
+ Page page = Pages.instance().getPage(viewId);
if(conversationName != null)
{
- ConversationIdParameter currentConversationIdParameter = Pages.instance().getConversationIdParameter(conversationName);
+ ConversationIdParameter currentConversationIdParameter = Pages.instance().getConversationIdParameter(conversationName);
+
if(currentConversationIdParameter == null)
{
throw new IllegalStateException("The conversationName specified: " + conversationName + ", does not exist.");
}
- conversationId = currentConversationIdParameter.getRequestConversationId(parameters);
+ // Try to restore the conversation from parameters (the user has specified the exact conversation to restore using f:param)
+ conversationId = currentConversationIdParameter.getRequestConversationId(parameters);
+ if (conversationId == null)
+ {
+ // Try to restore the conversation from the EL expression on the conversation definition
+ conversationId = currentConversationIdParameter.getConversationId();
+ }
}
else
{
conversationId = page.getConversationIdParameter().getRequestConversationId(parameters);
- }
+ }
+ //TODO: how about the parent conversation id?
}
+
}
private void restoreSyntheticConversationId(Map parameters)
More information about the seam-commits
mailing list