[
https://issues.apache.org/jira/browse/WW-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13664062#comment-13664062
]
Eric Lentz commented on WW-4071:
--------------------------------
Lukasz,
The code is looking really nice. I like what you did. One question though. I've
received mixed information about interceptor life-cycles, but I believe that an
interceptor can span multiple requests? In other words, it isn't created anew
with each request. If that's true, then I'm wondering if permanently changing
resultName as a side-effect of executing processValidationErrorAware is a good
policy? In other words, I could see one action executing in
ValidationErrorAware mode, changing the result type and then another action
coming along, not executing in ValidationErrorAware mode, and expecting "input"
for the resultName. If interceptors only live for 1 request and then are
re-created for the next request, then I'm way off and never mind.
If, on the other hand, it isn't created each time, then there could also be a
thread-safety / race condition between ValidationErrorAware executions coming
in at the same time.
Thanks,
Eric
> 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