Author: rich
Date: Sat Apr 30 14:30:01 2005
New Revision: 165420

URL: http://svn.apache.org/viewcvs?rev=165420&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-588 : "Forward Overflow" 
error when hitting an action when WEB-INF/.pageflow-struts-generated does not 
exist

tests: bvt in netui (WinXP)
BB: self (linux)


Modified:
    
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
    
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java?rev=165420&r1=165419&r2=165420&view=diff
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
 Sat Apr 30 14:30:01 2005
@@ -580,7 +580,8 @@
         // First wrap the request with an object that contains request-scoped 
values that our runtime uses.  This
         // is faster than sticking everything into attributes on the request 
(then basically reading from a HashMap).
         //
-        request = PageFlowRequestWrapper.wrapRequest( request );
+        PageFlowRequestWrapper requestWrapper = 
PageFlowRequestWrapper.wrapRequest( request );
+        request = requestWrapper;
         
         ServletContext servletContext = getServletContext();
         String modulePath = PageFlowUtils.getModulePathForRelativeURI( 
InternalUtils.getDecodedServletPath( request ) );
@@ -628,6 +629,13 @@
             else
             {
                 if ( processUnhandledAction( request, response, servletPath ) 
) return;
+                
+                String originalServletPath = 
requestWrapper.getOriginalServletPath();
+                if ( originalServletPath != null )
+                {
+                    servletPath = originalServletPath;
+                    modulePath = PageFlowUtils.getModulePathForRelativeURI( 
originalServletPath );
+                }
                 
                 if ( _log.isErrorEnabled() )
                 {

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java?rev=165420&r1=165419&r2=165420&view=diff
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
 Sat Apr 30 14:30:01 2005
@@ -213,6 +213,12 @@
     protected boolean processUnhandledAction( HttpServletRequest request, 
HttpServletResponse response, String uri )
         throws IOException, ServletException
     {
+        //
+        // First check to see if we're already in a forwarded fallback 
request.  If so, just bail.
+        //
+        PageFlowRequestWrapper rw = PageFlowRequestWrapper.get( request );
+        if ( rw.getOriginalServletPath() != null ) return false;       
+        
         SharedFlowController sharedFlowToTry = null;
         String uriBaseName = ServletUtils.getBaseName( uri );
         int firstDot = uriBaseName.indexOf( '.' );
@@ -260,7 +266,7 @@
             InternalStringBuilder sfActionURI = new InternalStringBuilder( 
sharedFlowToTry.getModulePath() );
             sfActionURI.append( '/' );
             sfActionURI.append( uriBaseName );
-            PageFlowRequestWrapper.get( request ).setOriginalServletPath( uri 
);
+            rw.setOriginalServletPath( uri );
             ForwardRedirectHandler frh = _handlers.getForwardRedirectHandler();
             FlowControllerHandlerContext context = new 
FlowControllerHandlerContext( request, response, null );
             frh.forward( context, sfActionURI.toString() );


Reply via email to