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