Author: markt Date: Wed Apr 1 12:52:24 2015 New Revision: 1670631 URL: http://svn.apache.org/r1670631 Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=57779 Dispatch to another thread for error handling is only intended to be used during Servlet 3+ async processing. Don't dispatch if the user is doing their own, custom form of async.
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1670631&r1=1670630&r2=1670631&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Apr 1 12:52:24 2015 @@ -78,11 +78,12 @@ public abstract class AbstractProcessor protected void setErrorState(ErrorState errorState, Throwable t) { boolean blockIo = this.errorState.isIoAllowed() && !errorState.isIoAllowed(); this.errorState = this.errorState.getMostSevere(errorState); - if (blockIo && !ContainerThreadMarker.isContainerThread()) { - // The error occurred on a non-container thread which means not all - // of the necessary clean-up will have been completed. Dispatch to - // a container thread to do the clean-up. Need to do it this way to - // ensure that all the necessary clean-up is performed. + if (blockIo && !ContainerThreadMarker.isContainerThread() && isAsync()) { + // The error occurred on a non-container thread during async + // processing which means not all of the necessary clean-up will + // have been completed. Dispatch to a container thread to do the + // clean-up. Need to do it this way to ensure that all the necessary + // clean-up is performed. if (response.getStatus() < 400) { response.setStatus(500); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org