jmitchell 2003/12/22 11:42:32 Modified: src/share/org/apache/struts/actions DispatchAction.java LocalStrings.properties Log: Fix for potential recursive call with DispatchAction Revision Changes Path 1.22 +17 -4 jakarta-struts/src/share/org/apache/struts/actions/DispatchAction.java Index: DispatchAction.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/actions/DispatchAction.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- DispatchAction.java 5 Oct 2003 17:48:57 -0000 1.21 +++ DispatchAction.java 22 Dec 2003 19:42:32 -0000 1.22 @@ -224,6 +224,17 @@ throw new ServletException(message); } + // Prevent recursive calls + if (parameter.equals("execute") || parameter.equals("perform")){ + String message = + messages.getMessage("dispatch.recursive", mapping.getPath()); + + log.error(message); + + throw new ServletException(message); + + } + // Get the method's name. This could be overridden in subclasses. String name = getMethodName(mapping, form, request, response, parameter); @@ -233,6 +244,8 @@ } + + /** * Method which is dispatched to when there is no value for specified * request parameter included in the request. Subclasses of 1.10 +2 -1 jakarta-struts/src/share/org/apache/struts/actions/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/actions/LocalStrings.properties,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- LocalStrings.properties 13 Aug 2003 17:19:58 -0000 1.9 +++ LocalStrings.properties 22 Dec 2003 19:42:32 -0000 1.10 @@ -1,5 +1,6 @@ dispatch.error=Dispatch[{0}] to method '{1}' returned an exception dispatch.handler=DispatchMapping[{0}] does not define a handler property +dispatch.recursive=Do not use 'execute' or 'perform' with DispatchAction. dispatch.lookup=Action[{0}] does not contain handler for resource '{1}' dispatch.mapping=ActionMapping[{0}] is not of type DispatchMapping dispatch.method=Action[{0}] does not contain method named '{1}' @@ -13,4 +14,4 @@ switch.prefix=Invalid module prefix '{0}' was specified switch.required=Switch requires both 'prefix' and 'page' request parameters success.required=SuccessAction could not find an ActionForward named 'success' for path '{0}' -mapping.parameter=ActionMapping[{0}] does not define a 'parameter' attribute \ No newline at end of file +mapping.parameter=ActionMapping[{0}] does not define a 'parameter' attribute
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]