[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Shane Bryzak
sbryzak at redhat.com
Thu Feb 22 10:12:22 EST 2007
User: sbryzak2
Date: 07/02/22 10:12:22
Modified: src/main/org/jboss/seam/core Pages.java
Log:
fix scheme check
Revision Changes Path
1.92 +22 -8 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.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- Pages.java 22 Feb 2007 14:49:32 -0000 1.91
+++ Pages.java 22 Feb 2007 15:12:22 -0000 1.92
@@ -238,15 +238,18 @@
{
boolean result = false;
String viewId = facesContext.getViewRoot().getViewId();
- String scheme = getRequestScheme(facesContext);
- for ( Page page: getPageStack(viewId) )
- {
- if ( scheme != null && !scheme.equals(page.getScheme()) )
+ String requestScheme = getRequestScheme(facesContext);
+ String scheme = getScheme(viewId);
+
+ if ( requestScheme != null && scheme != null && !requestScheme.equals(scheme) )
{
- Manager.instance().redirect( viewId, page.getScheme() );
+ Manager.instance().redirect( viewId, scheme );
return result;
}
- else if ( page.isConversationRequired() && !Manager.instance().isLongRunningConversation() )
+
+ for ( Page page: getPageStack(viewId))
+ {
+ if ( page.isConversationRequired() && !Manager.instance().isLongRunningConversation() )
{
redirectToNoConversationView();
return result;
@@ -322,6 +325,17 @@
}
}
+ public String getScheme(String viewId)
+ {
+ List<Page> stack = getPageStack(viewId);
+ for ( int i = stack.size() - 1; i >= 0; i-- )
+ {
+ Page page = stack.get(i);
+ if (page.getScheme() != null) return page.getScheme();
+ }
+ return null;
+ }
+
protected void noConversation()
{
Events.instance().raiseEvent("org.jboss.seam.noConversation");
More information about the jboss-cvs-commits
mailing list