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