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();
         }
         


Reply via email to