Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.1, 2.0.2
-
None
-
Sun JDK 1.5; WinXP; WebLogic 9.2
Description
After upgrading from WebWork 2.2.4 to Struts 2.0.2-SNAPSHOT the actions that use the ExecuteAndWaitInterceptor no longer work. Looking at the changes to the interceptor it appears that the changes to add the "executeAfterValidationPass" property are causing the problem.
To support this feature a new local variable "secondTime", which defaults to true, was added to the doIntercept() method. Later in the code are various checks to determine what result should be returned. The following is a condensed version of the if-else:
if (!secondTime && bp != null && !bp.isDone())
{ return WAIT; }else if (!secondTime && bp != null && bp.isDone())
{ return bp.getResult(); }else
{ return actionInvocation.invoke(); }Looking at the code I can't see how the "secondTime" variable can ever be set to false except on the first iteration or if you're using the "executeAfterValidationPass" property.
The workaround for now is to use the ExecuteAndWaitInterceptor that ships with WebWork 2.2.4.