You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2009/10/15 19:18:20 UTC

svn commit: r825575 - /myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java

Author: lu4242
Date: Thu Oct 15 17:18:20 2009
New Revision: 825575

URL: http://svn.apache.org/viewvc?rev=825575&view=rev
Log:
MYFACES-2380 DefaultRestoreViewSupport.calculateViewId does not calculate viewId properly on portlet case (see jsr-301 and portlet-bridge code for detail)

Modified:
    myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java

Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java?rev=825575&r1=825574&r2=825575&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java Thu Oct 15 17:18:20 2009
@@ -18,7 +18,6 @@
  */
 package org.apache.myfaces.lifecycle;
 
-import java.util.Iterator;
 import java.util.Map;
 
 import javax.el.ValueExpression;
@@ -44,6 +43,12 @@
     private static final String JAVAX_SERVLET_INCLUDE_SERVLET_PATH = "javax.servlet.include.servlet_path";
 
     private static final String JAVAX_SERVLET_INCLUDE_PATH_INFO = "javax.servlet.include.path_info";
+    
+    /**
+     * Constant defined on javax.portlet.faces.Bridge class that helps to 
+     * define if the current request is a portlet request or not.
+     */
+    private static final String PORTLET_LIFECYCLE_PHASE = "javax.portlet.faces.phase";
 
     private final Log log = LogFactory.getLog(DefaultRestoreViewSupport.class);
 
@@ -72,37 +77,46 @@
     {
         Assert.notNull(facesContext);
         ExternalContext externalContext = facesContext.getExternalContext();
-        Map requestMap = externalContext.getRequestMap();
+        Map<String, Object> requestMap = externalContext.getRequestMap();
 
-        String viewId = (String) requestMap.get(JAVAX_SERVLET_INCLUDE_PATH_INFO);
+        String viewId = null;
         boolean traceEnabled = log.isTraceEnabled();
-        if (viewId != null)
+        
+        if (requestMap.containsKey(PORTLET_LIFECYCLE_PHASE))
         {
-            if (traceEnabled)
-            {
-                log.trace("Calculated viewId '" + viewId + "' from request param '" + JAVAX_SERVLET_INCLUDE_PATH_INFO
-                        + "'");
-            }
+            viewId = (String) externalContext.getRequestPathInfo();
         }
         else
         {
-            viewId = externalContext.getRequestPathInfo();
-            if (viewId != null && traceEnabled)
+            viewId = (String) requestMap.get(JAVAX_SERVLET_INCLUDE_PATH_INFO);
+            if (viewId != null)
             {
-                log.trace("Calculated viewId '" + viewId + "' from request path info");
+                if (traceEnabled)
+                {
+                    log.trace("Calculated viewId '" + viewId + "' from request param '" + JAVAX_SERVLET_INCLUDE_PATH_INFO
+                            + "'");
+                }
             }
-        }
-
-        if (viewId == null)
-        {
-            viewId = (String) requestMap.get(JAVAX_SERVLET_INCLUDE_SERVLET_PATH);
-            if (viewId != null && traceEnabled)
+            else
+            {
+                viewId = externalContext.getRequestPathInfo();
+                if (viewId != null && traceEnabled)
+                {
+                    log.trace("Calculated viewId '" + viewId + "' from request path info");
+                }
+            }
+    
+            if (viewId == null)
             {
-                log.trace("Calculated viewId '" + viewId + "' from request param '"
-                        + JAVAX_SERVLET_INCLUDE_SERVLET_PATH + "'");
+                viewId = (String) requestMap.get(JAVAX_SERVLET_INCLUDE_SERVLET_PATH);
+                if (viewId != null && traceEnabled)
+                {
+                    log.trace("Calculated viewId '" + viewId + "' from request param '"
+                            + JAVAX_SERVLET_INCLUDE_SERVLET_PATH + "'");
+                }
             }
         }
-
+        
         if (viewId == null)
         {
             viewId = externalContext.getRequestServletPath();