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