You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/04/27 09:32:08 UTC

svn commit: r164957 - in /incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow: faces/internal/PageFlowViewHandler.java internal/PageFlowRequestWrapper.java

Author: rich
Date: Wed Apr 27 00:32:08 2005
New Revision: 164957

URL: http://svn.apache.org/viewcvs?rev=164957&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-567 : ClassCastException when hit faces page directly

tests: bvt in netui, bvt.myfaces and bvt.jsf-ri in netui/test/webapps/jsf
BB: self (linux)


Modified:
    incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
    incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java

Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java?rev=164957&r1=164956&r2=164957&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java Wed Apr 27 00:32:08 2005
@@ -93,17 +93,22 @@
         if ( request instanceof HttpServletRequest )
         {
             httpRequest = ( HttpServletRequest ) request;
-            PreviousPageInfo prevPageInfo = PageFlowRequestWrapper.unwrap( httpRequest ).getPreviousPageInfo( true );
-            
-            if ( prevPageInfo != null )
+            PageFlowRequestWrapper rw = PageFlowRequestWrapper.unwrap( httpRequest );
+
+            if ( rw != null )
             {
-                Object clientState = prevPageInfo.getClientState();
+                PreviousPageInfo prevPageInfo = rw.getPreviousPageInfo( true );
                 
-                if ( clientState != null && clientState instanceof PageClientState )
+                if ( prevPageInfo != null )
                 {
-                    PageClientState pcs = ( PageClientState ) clientState;
-                    InternalUtils.setFacesBackingBean( httpRequest, pcs.getBackingBean() );
-                    return pcs.getViewRoot();
+                    Object clientState = prevPageInfo.getClientState();
+                    
+                    if ( clientState != null && clientState instanceof PageClientState )
+                    {
+                        PageClientState pcs = ( PageClientState ) clientState;
+                        InternalUtils.setFacesBackingBean( httpRequest, pcs.getBackingBean() );
+                        return pcs.getViewRoot();
+                    }
                 }
             }
         }

Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java?rev=164957&r1=164956&r2=164957&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java Wed Apr 27 00:32:08 2005
@@ -52,13 +52,16 @@
         return ( PageFlowRequestWrapper ) servletRequest;
     }
     
+    /**
+     * Unwrap to find the PageFlowRequestWrapper.  This method may return <code>null</code>.
+     */
     public static PageFlowRequestWrapper unwrap( ServletRequest servletRequest )
     {
         servletRequest = InternalUtils.unwrapMultipart( servletRequest );
         
         while ( ! ( servletRequest instanceof PageFlowRequestWrapper ) )
         {
-            assert servletRequest instanceof ServletRequestWrapper : servletRequest.getClass().getName();
+            if ( ! ( servletRequest instanceof ServletRequestWrapper ) ) return null;
             servletRequest = ( ( ServletRequestWrapper ) servletRequest ).getRequest();
         }