Author: remm Date: Sat Mar 8 13:45:07 2014 New Revision: 1575545 URL: http://svn.apache.org/r1575545 Log: Add harmonized util methods for the five listener events.
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java?rev=1575545&r1=1575544&r2=1575545&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java Sat Mar 8 13:45:07 2014 @@ -61,15 +61,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(); } @@ -175,7 +167,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(); @@ -188,6 +198,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/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java?rev=1575545&r1=1575544&r2=1575545&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java Sat Mar 8 13:45:07 2014 @@ -161,14 +161,7 @@ public abstract class AbstractServletOut } } 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 t; } else { @@ -201,6 +194,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