Author: remm
Date: Wed Oct 29 17:29:19 2014
New Revision: 1635215
URL: http://svn.apache.org/r1635215
Log:
Fix three edgy async context bugs.
Modified:
tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1635215&r1=1635214&r2=1635215&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Wed Oct 29
17:29:19 2014
@@ -84,7 +84,6 @@ public class AsyncContextImpl implements
}
check();
request.getCoyoteRequest().action(ActionCode.ASYNC_COMPLETE, null);
- clearServletRequestResponse();
}
@Override
@@ -104,6 +103,7 @@ public class AsyncContextImpl implements
}
}
} finally {
+ clearServletRequestResponse();
context.unbind(Globals.IS_SECURITY_ENABLED, oldCL);
}
@@ -290,6 +290,10 @@ public class AsyncContextImpl implements
} catch (ClassNotFoundException e) {
ServletException se = new ServletException(e);
throw se;
+ } catch (Exception e) {
+ ExceptionUtils.handleThrowable(e.getCause());
+ ServletException se = new ServletException(e);
+ throw se;
}
return listener;
}
Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1635215&r1=1635214&r2=1635215&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8]
(original)
+++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Wed Oct
29 17:29:19 2014
@@ -109,7 +109,7 @@ public class AsyncStateMachine {
DISPATCHED(false, false, false),
STARTING(true, true, false),
STARTED(true, true, false),
- MUST_COMPLETE(true, false, false),
+ MUST_COMPLETE(true, true, false),
COMPLETING(true, false, false),
TIMING_OUT(true, false, false),
MUST_DISPATCH(true, true, true),
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1635215&r1=1635214&r2=1635215&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Oct 29 17:29:19 2014
@@ -183,6 +183,13 @@
full class path, ensure that class path entries added directly to the
web application class loader are scanned. (markt)
</fix>
+ <fix>
+ AsyncContext should remain usable until fireOnComplete is called.
(remm)
+ </fix>
+ <fix>
+ AsyncContext createListener should wrap any instantiation exception
+ using a ServletException. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
@@ -219,6 +226,9 @@
<code>AsyncContext.start(Runnable)</code> during non-blocking IO reads
and writes. (markt)
</fix>
+ <fix>
+ Async state MUST_COMPLETE should still be started. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]