[
https://issues.apache.org/jira/browse/WW-5195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17555836#comment-17555836
]
Lukasz Lenart commented on WW-5195:
-----------------------------------
The only workaround now is to use "redirect" instead of "dispatcher" result.
> Dispatcher: Infinite loop with dispatcher FORWARD
> -------------------------------------------------
>
> Key: WW-5195
> URL: https://issues.apache.org/jira/browse/WW-5195
> Project: Struts 2
> Issue Type: Bug
> Components: Core, Core Actions
> Affects Versions: 6.0.0
> Reporter: gubiao
> Priority: Major
> Fix For: 6.0.1
>
>
> *Action a:*
> public String a()
> {
> request.getRequestDispatcher("/b.action").forward(request, response);
> return null;
> }
>
> *Action b:*
> public String b()
> { ... }
>
> When the user calls /a.action, it is automatically forwarded to b.action.
> These codes work well in Struts 2.5.x version.
> After upgrading to the 6.0.0 version, code like the above will cause an
> infinite loop issue.
> In Struts 6.0.0, code like "actionA->forward->actionB" will cause infinite
> loop issue.
>
> This issue also exists when using ServletDispatcherResult to initiate a
> forward request:
> <result name="success" type="dispatcher">
> <param name="location">b.action</param>
> </result>
>
> This issue related to [#179|https://github.com/apache/struts/pull/179] pull
> request.
> [https://github.com/apache/struts/pull/179/files#diff-a394bef2608163b6810c293626eb1356e3be43ec82f94fe6da881f0608a86547]
>
> ActionInvocation invocation =
> ActionContext.getContext().getActionInvocation();
> if (invocation == null || invocation.isExecuted())
> { // *The code here doesn't handle the servlet forward case*
> proxy=getContainer().getInstance(ActionProxyFactory.class).createActionProxy(namespace,
> name, method, extraContext, true, false); }
> else
> { proxy=invocation.getProxy(); }
>
> Once this problem occurs, the jvm process consumes a lot of CPU resources,
> and there is no log to troubleshoot.
>
> I don't know much about how Struts internals work, is there any workaround
> other than delayed upgrade to Struts 6.x version?
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)