Author: markt Date: Tue May 20 18:38:02 2014 New Revision: 1596359 URL: http://svn.apache.org/r1596359 Log: Backport of r1575545 Better align 7.0.x with trunk to aid back-ports
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1575545 Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java?rev=1596359&r1=1596358&r2=1596359&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java Tue May 20 18:38:02 2014 @@ -68,15 +68,7 @@ public abstract class AbstractServletInp try { ready = Boolean.valueOf(doIsReady()); } catch (IOException e) { - Thread thread = Thread.currentThread(); - ClassLoader originalClassLoader = thread.getContextClassLoader(); - try { - thread.setContextClassLoader(applicationLoader); - listener.onError(e); - } finally { - thread.setContextClassLoader(originalClassLoader); - } - ready = Boolean.FALSE; + onError(e); } return ready.booleanValue(); } @@ -184,7 +176,25 @@ public abstract class AbstractServletInp } + protected final void onAllDataRead() throws IOException { + if (listener == null) { + return; + } + Thread thread = Thread.currentThread(); + ClassLoader originalClassLoader = thread.getContextClassLoader(); + try { + thread.setContextClassLoader(applicationLoader); + listener.onAllDataRead(); + } finally { + thread.setContextClassLoader(originalClassLoader); + } + } + + protected final void onDataAvailable() throws IOException { + if (listener == null) { + return; + } ready = Boolean.TRUE; Thread thread = Thread.currentThread(); ClassLoader originalClassLoader = thread.getContextClassLoader(); @@ -197,6 +207,22 @@ public abstract class AbstractServletInp } + protected final void onError(Throwable t) { + if (listener == null) { + return; + } + Thread thread = Thread.currentThread(); + ClassLoader originalClassLoader = thread.getContextClassLoader(); + try { + thread.setContextClassLoader(applicationLoader); + listener.onError(t); + } finally { + thread.setContextClassLoader(originalClassLoader); + } + ready = Boolean.FALSE; + } + + protected final boolean isCloseRequired() { return closeRequired; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java?rev=1596359&r1=1596358&r2=1596359&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java Tue May 20 18:38:02 2014 @@ -145,14 +145,7 @@ public abstract class AbstractServletOut writeInternal(buffer, 0, buffer.length); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); - Thread thread = Thread.currentThread(); - ClassLoader originalClassLoader = thread.getContextClassLoader(); - try { - thread.setContextClassLoader(applicationLoader); - listener.onError(t); - } finally { - thread.setContextClassLoader(originalClassLoader); - } + onError(t); if (t instanceof IOException) { throw (IOException) t; } else { @@ -183,6 +176,21 @@ public abstract class AbstractServletOut } } + protected final void onError(Throwable t) { + if (listener == null) { + return; + } + Thread thread = Thread.currentThread(); + ClassLoader originalClassLoader = thread.getContextClassLoader(); + try { + thread.setContextClassLoader(applicationLoader); + listener.onError(t); + } finally { + thread.setContextClassLoader(originalClassLoader); + } + } + + /** * Abstract method to be overridden by concrete implementations. The base * class will ensure that there are no concurrent calls to this method for --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org