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