[
https://issues.apache.org/jira/browse/WW-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13664070#comment-13664070
]
Lukasz Lenart commented on WW-4071:
-----------------------------------
Interceptors are singletons per stack, which means the same interceptor
instance will be used for each request (per stack).
I don't get it - method params are thread-safe, even if many threads are
reusing the same instance of interceptor, each thread has its own parameter
reference. Secondly ActionInvocation / Action is recreated per request so there
is no option to share the state.
Basically operating just on ActionInvocation / Action in methods is
thread-safe. Interceptor doesn't change any global state (like itself) so I
don't see where the race condition can occur.
> ValidationAware add callable method, called from DefaultWorkflowInterceptor
> ---------------------------------------------------------------------------
>
> Key: WW-4071
> URL: https://issues.apache.org/jira/browse/WW-4071
> Project: Struts 2
> Issue Type: New Feature
> Components: Core Interceptors
> Affects Versions: 2.3.14
> Reporter: Eric Lentz
> Assignee: Lukasz Lenart
> Priority: Minor
> Fix For: 2.3.15
>
>
> When a form error occurs, the action is unaware of this event. There are
> situations whereby one should know that a form error has occurred. For
> example, one may wish to populate the ActionStack with special handling
> variables or set a flag denoting special logic that the JSP should handle. In
> short, it isn't unreasonable for one to want to know that a form error
> occurred and be able to respond to it with more than just a single JSP result
> attached to "input."
> My suggestion would be within ValidationAware, add a method:
> void actionError()
> Within DefaultWorkflowInterceptor.doIntercept, there is already an if
> condition of:
> if (validationAwareAction.hasErrors()) {
> at the end of processing that if block, just before, "return resultName;"
> call validationAwareAction.actionError();
> By the way, this line:
> LOG.debug("Errors on action " + validationAwareAction + ", returning result
> name 'input'");
> should be:
> LOG.debug("Errors on action " + validationAwareAction + ", returning result
> name '" + inputResultName + "'");
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira