Author: markt
Date: Wed Feb 18 12:53:44 2015
New Revision: 1660618
URL: http://svn.apache.org/r1660618
Log:
Handle the unlikely case of setting the write listener from a non-container
thread.
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java?rev=1660618&r1=1660617&r2=1660618&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
(original)
+++
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
Wed Feb 18 12:53:44 2015
@@ -21,6 +21,7 @@ import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
+import org.apache.coyote.ContainerThreadMarker;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
@@ -107,7 +108,11 @@ public class UpgradeServletOutputStream
// need to do this if setting the listener for the first time.
synchronized (registeredLock) {
registered = true;
- socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
+ if (ContainerThreadMarker.isContainerThread()) {
+ socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
+ } else {
+ socketWrapper.registerWriteInterest();
+ }
}
this.listener = listener;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]