Author: markt
Date: Fri Mar 6 15:35:21 2015
New Revision: 1664657
URL: http://svn.apache.org/r1664657
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=57592
Ensure that asyncStateMachine.asyncOperation() is only called during async
processing. It was possible that this would be called once async processing had
completed, triggering an ISE.
Modified:
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1664657&r1=1664656&r2=1664657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Mar 6
15:35:21 2015
@@ -611,7 +611,7 @@ public class AjpProcessor extends Abstra
@Override
public SocketState asyncDispatch(SocketStatus status) {
- if (status == SocketStatus.OPEN_WRITE) {
+ if (status == SocketStatus.OPEN_WRITE && response.getWriteListener()
!= null) {
try {
asyncStateMachine.asyncOperation();
try {
@@ -635,8 +635,7 @@ public class AjpProcessor extends Abstra
} catch (IllegalStateException x) {
socketWrapper.registerWriteInterest();
}
- } else if (status == SocketStatus.OPEN_READ &&
- request.getReadListener() != null) {
+ } else if (status == SocketStatus.OPEN_READ &&
request.getReadListener() != null) {
try {
if (available()) {
asyncStateMachine.asyncOperation();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]