You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by "David Evans (JIRA)" <ji...@apache.org> on 2006/04/25 21:00:48 UTC

[jira] Reopened: (STR-1015) Action "input" not starting with '/' and not a valid forward will cause an internal server error

     [ http://issues.apache.org/struts/browse/STR-1015?page=all ]
     
David Evans reopened STR-1015:
------------------------------

    Assign To:     (was: Struts Developer Mailing List)

> Action "input" not starting with '/' and not a valid forward will cause an internal server error
> ------------------------------------------------------------------------------------------------
>
>          Key: STR-1015
>          URL: http://issues.apache.org/struts/browse/STR-1015
>      Project: Struts Action 1
>         Type: Improvement

>   Components: Action
>     Versions: Nightly Build
>  Environment: Operating System: other
> Platform: All
>     Reporter: Thomas Heller
>     Priority: Minor
>      Fix For: 1.2 Family

>
> hi there,
> im just getting started with struts but [through newbie configuration error]
> i accidently found a "bug". it causes an internal server error from tomcat
> displaying a long stack trace and i had a pretty hard time finding out what
> was wrong.
> here is the snippet from my struts-config.xml
> [snip]
>   <action path="/register"
>    type="my.package.RegisterAction"
>    name="registrationForm"
>    scope="request"
>    input="registration">
>    <forward name="success" path="/index.jsp" />
>    <forward name="failure" path="/register.jsp"/>
>   </action>
> [/snip]
> here is the validate method from my Form:
> [snip]
>  public ActionErrors validate(ActionMapping mapping, HttpServletRequest
> request)
>  {
>   ActionErrors errors = new ActionErrors();
>   errors.add("very.bad.error", new ActionError("very.bad.error"));
>   return errors;
>  }
> [/snip]
> i hardcoded this error cause i wanted to find out how everything works
> within struts.
> now the process was the following .. i go load a brower point it to the form
> fill all fields and press submit.
> the struts-internals pretty soon reaches the "processValidate" method from
> "RequestProcessor". where we find the following case (NOTE: "input" is
> "registration" here!")
> [snip]
>         // Has an input form been specified for this mapping?
>         String input = mapping.getInput();
>         if (input == null)
>         {
>             ...
>         }
>         request.setAttribute(Action.ERROR_KEY, errors);
>         String uri = null;
>         if (appConfig.getControllerConfig().getInputForward()) {
>             ForwardConfig forward = mapping.findForward(input);
>             processForwardConfig( request, response, forward);
>         } else {
>             internalModuleRelativeForward(input, request, response);
>         }
> [/snip]
> as there is no forward configured by name "registration" he does an internal
> redirect which ends at the "doForward" method calling
> [snip]
>     RequestDispatcher rd = getServletContext().getRequestDispatcher(uri);
> [/snip]
> uri in that case is "registration" and we have an exception cause
> "getRequestDispatcher" wants a path starting with '/'.
> dunno where to fix that but IMHO either the digester should check wether
> "input" is a valid forward or starts with "/".
> dunno if this was a known issue, just thought i better let u know cause this
> would really have driven me mad if i werent into debugging anyways. (and in
> the process of learning struts) i know its a configuration error but the i
> couldnt find a warning about this issue anywhere in the docs.
> thanks & greets
> Thomas

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org