diff --git a/plugins/async/src/main/java/org/apache/struts2/async/AsyncAction.java b/plugins/async/src/main/java/org/apache/struts2/async/AsyncAction.java index 3baf78fbd..1edf5d45a 100644 --- a/plugins/async/src/main/java/org/apache/struts2/async/AsyncAction.java +++ b/plugins/async/src/main/java/org/apache/struts2/async/AsyncAction.java @@ -27,6 +27,12 @@ import java.util.concurrent.Executor; * @since 2.6 */ public class AsyncAction implements Callable { + + /** + * The action invocation was successful but did not return the result before timeout. + */ + public static final String TIMEOUT = "timeout"; + private Callable callable; private Long timeout; private Executor executor; diff --git a/plugins/async/src/main/java/org/apache/struts2/async/DefaultAsyncManager.java b/plugins/async/src/main/java/org/apache/struts2/async/DefaultAsyncManager.java index 1e84f27f0..ed69548fc 100644 --- a/plugins/async/src/main/java/org/apache/struts2/async/DefaultAsyncManager.java +++ b/plugins/async/src/main/java/org/apache/struts2/async/DefaultAsyncManager.java @@ -132,7 +132,7 @@ public class DefaultAsyncManager implements AsyncManager, AsyncListener { @Override public void onTimeout(AsyncEvent asyncEvent) throws IOException { LOG.debug("Processing timeout for " + asyncEvent.getAsyncContext()); - setAsyncActionResultAndDispatch("timeout"); + setAsyncActionResultAndDispatch(AsyncAction.TIMEOUT); } @Override