[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Gavin King
gavin.king at jboss.com
Thu Mar 8 21:14:15 EST 2007
User: gavin
Date: 07/03/08 21:14:15
Modified: src/main/org/jboss/seam/core Manager.java
Navigator.java Pages.java Redirect.java
ResourceBundle.java
Log:
fix another bug in natural conversation ids
Revision Changes Path
1.159 +19 -16 jboss-seam/src/main/org/jboss/seam/core/Manager.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Manager.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Manager.java,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -b -r1.158 -r1.159
--- Manager.java 9 Mar 2007 00:17:51 -0000 1.158
+++ Manager.java 9 Mar 2007 02:14:15 -0000 1.159
@@ -45,7 +45,7 @@
*
* @author Gavin King
* @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
- * @version $Revision: 1.158 $
+ * @version $Revision: 1.159 $
*/
@Scope(ScopeType.EVENT)
@Name("org.jboss.seam.core.manager")
@@ -433,10 +433,10 @@
Boolean isLongRunningConversation = null;
//First, try to get the conversation id from the request parameter defined for the page
- FacesContext facesContext = FacesContext.getCurrentInstance();
- if ( facesContext!=null && facesContext.getViewRoot()!=null )
+ String viewId = Pages.getCurrentViewId();
+ if ( viewId!=null )
{
- Page page = Pages.instance().getPage( facesContext.getViewRoot().getViewId() );
+ Page page = Pages.instance().getPage(viewId);
storedConversationId = page.getConversationIdParameter().getRequestConversationId(parameters);
//isLongRunningConversation = false; //TODO: think about this further...
isLongRunningConversation = "true".equals( getRequestParameterValue(parameters, conversationIsLongRunningParameter) );
@@ -593,7 +593,7 @@
boolean removeAfterRedirect = ce.isRemoveAfterRedirect() && !(
Init.instance().isDebug() &&
(FacesContext.getCurrentInstance() != null) &&
- "/debug.xhtml".equals( FacesContext.getCurrentInstance().getViewRoot().getViewId() )
+ "/debug.xhtml".equals( Pages.getCurrentViewId() )
);
if (removeAfterRedirect)
@@ -667,10 +667,12 @@
private String generateInitialConversationId()
{
FacesContext facesContext = FacesContext.getCurrentInstance();
- if ( facesContext!=null && facesContext.getViewRoot()!=null )
+ String viewId = Pages.getViewId(facesContext);
+ if ( viewId!=null )
{
- Page page = Pages.instance().getPage( facesContext.getViewRoot().getViewId() );
- return page.getConversationIdParameter().getInitialConversationId( facesContext.getExternalContext().getRequestParameterMap() );
+ return Pages.instance().getPage(viewId)
+ .getConversationIdParameter()
+ .getInitialConversationId( facesContext.getExternalContext().getRequestParameterMap() );
}
else
{
@@ -850,20 +852,21 @@
beforeRedirect();
FacesContext facesContext = FacesContext.getCurrentInstance();
- if ( viewId!=null && facesContext!=null && facesContext.getViewRoot()!=null )
+ String currentViewId = Pages.getViewId(facesContext);
+ if ( viewId!=null && currentViewId!=null )
{
- Page currentPage = Pages.instance().getPage( facesContext.getViewRoot().getViewId() );
- Page targetPage = Pages.instance().getPage(viewId);
- if ( isDifferentConversationId( currentPage.getConversationIdParameter(), targetPage.getConversationIdParameter() ) )
+ ConversationIdParameter currentPage = Pages.instance().getPage(currentViewId).getConversationIdParameter();
+ ConversationIdParameter targetPage = Pages.instance().getPage(viewId).getConversationIdParameter();
+ if ( isDifferentConversationId(currentPage, targetPage) )
{
- updateCurrentConversationId( targetPage.getConversationIdParameter().getInitialConversationId( facesContext.getExternalContext().getRequestParameterMap() ) );
+ updateCurrentConversationId( targetPage.getConversationId() );
}
}
}
private boolean isDifferentConversationId(ConversationIdParameter sp, ConversationIdParameter tp)
{
- return sp.getName()!=tp.getName() && ( sp==null || !sp.getName().equals( tp.getName() ) );
+ return sp.getName()!=tp.getName() && ( sp.getName()==null || !sp.getName().equals( tp.getName() ) );
}
/**
@@ -1109,10 +1112,10 @@
if (pageflowPage==null)
{
//handle stuff defined in pages.xml
- String viewId = facesContext.getViewRoot().getViewId();
Pages pages = Pages.instance();
if (pages!=null) //for tests
{
+ String viewId = Pages.getViewId(facesContext);
org.jboss.seam.pages.Page pageEntry = pages.getPage(viewId);
if ( pageEntry.isSwitchEnabled() )
{
1.6 +2 -2 jboss-seam/src/main/org/jboss/seam/core/Navigator.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Navigator.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Navigator.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- Navigator.java 11 Feb 2007 00:42:13 -0000 1.5
+++ Navigator.java 9 Mar 2007 02:14:15 -0000 1.6
@@ -39,7 +39,7 @@
{
if ( Strings.isEmpty(viewId) )
{
- viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
+ viewId = Pages.getCurrentViewId();
}
if ( log.isDebugEnabled() ) log.debug("redirecting to: " + viewId);
Manager.instance().redirect(viewId, parameters, true);
@@ -59,7 +59,7 @@
}
else
{
- viewId = facesContext.getViewRoot().getViewId(); //just for the log message
+ viewId = Pages.getViewId(facesContext); //just for the log message
}
if ( log.isDebugEnabled() ) log.debug("rendering: " + viewId);
facesContext.renderResponse();
1.106 +24 -7 jboss-seam/src/main/org/jboss/seam/core/Pages.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Pages.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Pages.java,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -b -r1.105 -r1.106
--- Pages.java 9 Mar 2007 00:17:51 -0000 1.105
+++ Pages.java 9 Mar 2007 02:14:15 -0000 1.106
@@ -19,6 +19,7 @@
import javax.faces.application.FacesMessage;
import javax.faces.application.ViewHandler;
import javax.faces.application.FacesMessage.Severity;
+import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
@@ -111,7 +112,7 @@
*/
public boolean navigate(FacesContext context, String actionExpression, String actionOutcomeValue)
{
- String viewId = context.getViewRoot().getViewId();
+ String viewId = getViewId(context);
if (viewId!=null)
{
List<Page> stack = getPageStack(viewId);
@@ -242,7 +243,7 @@
public boolean enterPage(FacesContext facesContext)
{
boolean result = false;
- String viewId = facesContext.getViewRoot().getViewId();
+ String viewId = getViewId(facesContext);
String requestScheme = getRequestScheme(facesContext);
if ( requestScheme!=null )
@@ -383,7 +384,7 @@
String noConversationViewId = null;
if (pageflowName==null || pageflowNodeName==null)
{
- String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
+ String viewId = Pages.getCurrentViewId();
noConversationViewId = getNoConversationViewId(viewId);
}
else
@@ -606,7 +607,7 @@
*/
public void applyRequestParameterValues(FacesContext facesContext)
{
- String viewId = facesContext.getViewRoot().getViewId();
+ String viewId = getViewId(facesContext);
Map<String, String[]> requestParameters = Parameters.getRequestParameters();
for ( Page page: getPageStack(viewId) )
{
@@ -635,7 +636,7 @@
*/
public void applyViewRootValues(FacesContext facesContext)
{
- String viewId = facesContext.getViewRoot().getViewId();
+ String viewId = getViewId(facesContext);
for ( Page page: getPageStack(viewId) )
{
for ( Param pageParameter: page.getParameters() )
@@ -656,7 +657,7 @@
public Map<String, Object> getViewRootValues(FacesContext facesContext)
{
Map<String, Object> parameters = new HashMap<String, Object>();
- String viewId = facesContext.getViewRoot().getViewId();
+ String viewId = getViewId(facesContext);
for ( Page page: getPageStack(viewId) )
{
for ( Param pageParameter: page.getParameters() )
@@ -716,7 +717,7 @@
*/
public void storePageParameters(FacesContext facesContext)
{
- String viewId = facesContext.getViewRoot().getViewId();
+ String viewId = getViewId(facesContext);
for ( Map.Entry<String, Object> param: getParameters(viewId).entrySet() )
{
Contexts.getPageContext().set( param.getKey(), param.getValue() );
@@ -1256,9 +1257,25 @@
{
return loginViewId;
}
+
public void setLoginViewId(String loginViewId)
{
this.loginViewId = loginViewId;
}
+ public static String getCurrentViewId()
+ {
+ return getViewId( FacesContext.getCurrentInstance() );
+ }
+
+ public static String getViewId(FacesContext facesContext)
+ {
+ if (facesContext!=null)
+ {
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+ if (viewRoot!=null) return viewRoot.getViewId();
+ }
+ return null;
+ }
+
}
1.14 +2 -2 jboss-seam/src/main/org/jboss/seam/core/Redirect.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Redirect.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Redirect.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- Redirect.java 25 Feb 2007 22:38:21 -0000 1.13
+++ Redirect.java 9 Mar 2007 02:14:15 -0000 1.14
@@ -87,7 +87,7 @@
parameters.clear();
FacesContext context = FacesContext.getCurrentInstance();
parameters.putAll( context.getExternalContext().getRequestParameterMap() );
- viewId = context.getViewRoot().getViewId();
+ viewId = Pages.getViewId(context);
setDirty();
}
@@ -103,7 +103,7 @@
{
FacesContext context = FacesContext.getCurrentInstance();
parameters = Pages.instance().getViewRootValues(context);
- viewId = context.getViewRoot().getViewId();
+ viewId = Pages.getViewId(context);
conversationBegun = Conversation.instance().begin(true, false);
setDirty();
//if the request ends with an exception,
1.26 +7 -8 jboss-seam/src/main/org/jboss/seam/core/ResourceBundle.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ResourceBundle.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/ResourceBundle.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- ResourceBundle.java 21 Dec 2006 02:38:26 -0000 1.25
+++ ResourceBundle.java 9 Mar 2007 02:14:15 -0000 1.26
@@ -162,17 +162,16 @@
private List<java.util.ResourceBundle> getPageResourceBundles()
{
- FacesContext facesContext = FacesContext.getCurrentInstance();
- if (facesContext!=null)
+ String viewId = Pages.getCurrentViewId();
+ if (viewId!=null)
{
- UIViewRoot viewRoot = facesContext.getViewRoot();
- if (viewRoot!=null)
- {
- return Pages.instance().getResourceBundles( viewRoot.getViewId() );
- }
+ return Pages.instance().getResourceBundles(viewId);
}
+ else
+ {
return Collections.EMPTY_LIST;
}
+ }
};
More information about the jboss-cvs-commits
mailing list