Hi Lukasz,
> Does it mean you have something else on top of the stack than action?
The original action, held in the background process, is at the top of the
stack. This is the object we want returned when "JSONResult.findRootObject" is
called. The second object in the stack is the action created by the polling
request to get a progress update. The change in 6.0.0 to call
'stack.findValue("#action")' returns the second object in the stack. As the
polling action is never executed and instead delegated to the background
progress, there's no data returned by the second action i.e. no progress
information.
> If this is a ModelDriven it should be fine as well as there is a code to
> detect that.
I have changed my action to implement ModelDriven to get around the code change
to JSONResult. If this is now a requirement of using the
ExecuteAndWaitInterceptor, the documentation may need to be updated -
https://struts.apache.org/core-developers/execute-and-wait-interceptor
>> Workaround:
>> Changing the action to implement 'ModelDriven' reinstates the old behaviour
>> of calling 'stack.peek()' in the JSONResult.findRootObject(...) method.
> Thanks, but what else can it be?
Ideally, the action from the background process would be returned by
"JSONResult.findRootObject" without the need for the action to implement
ModelDriven. Could the ExecuteAndWaitInterceptor add the action to the context
with the key 'action'? I'm not sure if there would be other implications of
changing the action in this way.
Thanks,
Kris