You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2014/03/08 14:45:08 UTC
svn commit: r1575545 - in
/tomcat/trunk/java/org/apache/coyote/http11/upgrade:
AbstractServletInputStream.java AbstractServletOutputStream.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org