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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to