Author: markt
Date: Mon Sep 27 22:12:05 2010
New Revision: 1001932

URL: http://svn.apache.org/viewvc?rev=1001932&view=rev
Log:
Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48644
Some Throwables must always be re-thrown

Modified:
    tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Mon Sep 27 
22:12:05 2010
@@ -34,6 +34,7 @@ import org.apache.coyote.OutputBuffer;
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestInfo;
 import org.apache.coyote.Response;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.jni.Socket;
@@ -409,6 +410,7 @@ public class AjpAprProcessor implements 
                 error = true;
                 break;
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.debug(sm.getString("ajpprocessor.header.error"), t);
                 // 400 - Bad Request
                 response.setStatus(400);
@@ -421,6 +423,7 @@ public class AjpAprProcessor implements 
             try {
                 prepareRequest();
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.debug(sm.getString("ajpprocessor.request.prepare"), t);
                 // 400 - Internal Server Error
                 response.setStatus(400);
@@ -436,6 +439,7 @@ public class AjpAprProcessor implements 
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     log.error(sm.getString("ajpprocessor.request.process"), t);
                     // 500 - Internal Server Error
                     response.setStatus(500);
@@ -453,6 +457,7 @@ public class AjpAprProcessor implements 
                 try {
                     finish();
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     error = true;
                 }
             }
@@ -498,6 +503,7 @@ public class AjpAprProcessor implements 
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Mon Sep 27 
22:12:05 2010
@@ -36,6 +36,7 @@ import org.apache.coyote.Adapter;
 import org.apache.coyote.ProtocolHandler;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.modeler.Registry;
@@ -420,6 +421,7 @@ public class AjpAprProtocol 
             // rare-but-nonfatal exceptions, catch them here, and log as
             // above.
             catch (Throwable e) {
+                ExceptionUtils.handleThrowable(e);
                 // any other exception or error is odd. Here we log it
                 // with "ERROR" level, so it will show up even on
                 // less-than-verbose logs.
@@ -456,6 +458,7 @@ public class AjpAprProtocol 
                 // rare-but-nonfatal exceptions, catch them here, and log as
                 // above.
                 catch (Throwable e) {
+                    ExceptionUtils.handleThrowable(e);
                     // any other exception or error is odd. Here we log it
                     // with "ERROR" level, so it will show up even on
                     // less-than-verbose logs.

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Mon Sep 27 
22:12:05 2010
@@ -36,6 +36,7 @@ import org.apache.coyote.OutputBuffer;
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestInfo;
 import org.apache.coyote.Response;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -418,6 +419,7 @@ public class AjpProcessor implements Act
                 error = true;
                 break;
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.debug(sm.getString("ajpprocessor.header.error"), t);
                 // 400 - Bad Request
                 response.setStatus(400);
@@ -430,6 +432,7 @@ public class AjpProcessor implements Act
             try {
                 prepareRequest();
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.debug(sm.getString("ajpprocessor.request.prepare"), t);
                 // 400 - Internal Server Error
                 response.setStatus(400);
@@ -445,6 +448,7 @@ public class AjpProcessor implements Act
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     log.error(sm.getString("ajpprocessor.request.process"), t);
                     // 500 - Internal Server Error
                     response.setStatus(500);
@@ -462,6 +466,7 @@ public class AjpProcessor implements Act
                 try {
                     finish();
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     error = true;
                 }
             }
@@ -499,6 +504,7 @@ public class AjpProcessor implements Act
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Mon Sep 27 
22:12:05 2010
@@ -37,6 +37,7 @@ import org.apache.coyote.Adapter;
 import org.apache.coyote.ProtocolHandler;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.modeler.Registry;
@@ -416,6 +417,7 @@ public class AjpProtocol 
             // rare-but-nonfatal exceptions, catch them here, and log as
             // above.
             catch (Throwable e) {
+                ExceptionUtils.handleThrowable(e);
                 // any other exception or error is odd. Here we log it
                 // with "ERROR" level, so it will show up even on
                 // less-than-verbose logs.

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Mon 
Sep 27 22:12:05 2010
@@ -39,6 +39,7 @@ import org.apache.coyote.http11.filters.
 import org.apache.coyote.http11.filters.SavedRequestInputFilter;
 import org.apache.coyote.http11.filters.VoidInputFilter;
 import org.apache.coyote.http11.filters.VoidOutputFilter;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.Ascii;
@@ -1082,6 +1083,7 @@ public abstract class AbstractHttp11Proc
         } catch (IOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.finish"), t);
             // 500 - Internal Server Error
             response.setStatus(500);
@@ -1093,6 +1095,7 @@ public abstract class AbstractHttp11Proc
         } catch (IOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.response.finish"), t);
             error = true;
         }

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Mon Sep 
27 22:12:05 2010
@@ -31,6 +31,7 @@ import org.apache.coyote.Request;
 import org.apache.coyote.RequestInfo;
 import org.apache.coyote.Response;
 import org.apache.coyote.http11.filters.BufferedInputFilter;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.jni.Address;
@@ -156,6 +157,7 @@ public class Http11AprProcessor extends 
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);
@@ -242,6 +244,7 @@ public class Http11AprProcessor extends 
                 error = true;
                 break;
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 if (log.isDebugEnabled()) {
                     log.debug(sm.getString("http11processor.header.parse"), t);
                 }
@@ -257,6 +260,7 @@ public class Http11AprProcessor extends 
                 try {
                     prepareRequest();
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     if (log.isDebugEnabled()) {
                         
log.debug(sm.getString("http11processor.request.prepare"), t);
                     }
@@ -287,6 +291,7 @@ public class Http11AprProcessor extends 
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     log.error(sm.getString("http11processor.request.process"), 
t);
                     // 500 - Internal Server Error
                     response.setStatus(500);
@@ -363,6 +368,7 @@ public class Http11AprProcessor extends 
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Mon Sep 
27 22:12:05 2010
@@ -28,6 +28,7 @@ import javax.management.ObjectName;
 
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.modeler.Registry;
@@ -320,6 +321,7 @@ public class Http11AprProtocol extends A
                     // rare-but-nonfatal exceptions, catch them here, and log 
as
                     // above.
                     catch (Throwable e) {
+                        ExceptionUtils.handleThrowable(e);
                         // any other exception or error is odd. Here we log it
                         // with "ERROR" level, so it will show up even on
                         // less-than-verbose logs.
@@ -380,6 +382,7 @@ public class Http11AprProtocol extends A
             // rare-but-nonfatal exceptions, catch them here, and log as
             // above.
             catch (Throwable e) {
+                ExceptionUtils.handleThrowable(e);
                 // any other exception or error is odd. Here we log it
                 // with "ERROR" level, so it will show up even on
                 // less-than-verbose logs.
@@ -403,6 +406,7 @@ public class Http11AprProtocol extends A
                 // exceptions, catch them here, and log as per {...@link 
#event()}
                 // above.
                 } catch (Throwable e) {
+                    ExceptionUtils.handleThrowable(e);
                     // any other exception or error is odd. Here we log it
                     // with "ERROR" level, so it will show up even on
                     // less-than-verbose logs.

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Mon Sep 
27 22:12:05 2010
@@ -29,6 +29,7 @@ import org.apache.coyote.Request;
 import org.apache.coyote.RequestInfo;
 import org.apache.coyote.Response;
 import org.apache.coyote.http11.filters.BufferedInputFilter;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.Ascii;
@@ -190,6 +191,7 @@ public class Http11NioProcessor extends 
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);
@@ -250,6 +252,7 @@ public class Http11NioProcessor extends 
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);
@@ -344,6 +347,7 @@ public class Http11NioProcessor extends 
                 error = true;
                 break;
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 if (log.isDebugEnabled()) {
                     log.debug(sm.getString("http11processor.header.parse"), t);
                 }
@@ -359,6 +363,7 @@ public class Http11NioProcessor extends 
                 try {
                     prepareRequest();
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     if (log.isDebugEnabled()) {
                         
log.debug(sm.getString("http11processor.request.prepare"), t);
                     }
@@ -403,6 +408,7 @@ public class Http11NioProcessor extends 
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     log.error(sm.getString("http11processor.request.process"), 
t);
                     // 500 - Internal Server Error
                     response.setStatus(500);

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Mon Sep 
27 22:12:05 2010
@@ -29,6 +29,7 @@ import javax.management.ObjectName;
 
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.modeler.Registry;
@@ -318,6 +319,7 @@ public class Http11NioProtocol extends A
                 // rare-but-nonfatal exceptions, catch them here, and log as
                 // above.
                 catch (Throwable e) {
+                    ExceptionUtils.handleThrowable(e);
                     // any other exception or error is odd. Here we log it
                     // with "ERROR" level, so it will show up even on
                     // less-than-verbose logs.
@@ -414,6 +416,7 @@ public class Http11NioProtocol extends A
             // rare-but-nonfatal exceptions, catch them here, and log as
             // above.
             catch (Throwable e) {
+                ExceptionUtils.handleThrowable(e);
                 // any other exception or error is odd. Here we log it
                 // with "ERROR" level, so it will show up even on
                 // less-than-verbose logs.

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Mon Sep 27 
22:12:05 2010
@@ -30,6 +30,7 @@ import org.apache.coyote.Request;
 import org.apache.coyote.RequestInfo;
 import org.apache.coyote.Response;
 import org.apache.coyote.http11.filters.BufferedInputFilter;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -171,6 +172,7 @@ public class Http11Processor extends Abs
         try {
             socket.getSocket().setSoTimeout(soTimeout);
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.debug(sm.getString("http11processor.socket.timeout"), t);
             error = true;
         }
@@ -203,6 +205,7 @@ public class Http11Processor extends Abs
                 error = true;
                 break;
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 if (log.isDebugEnabled()) {
                     log.debug(sm.getString("http11processor.header.parse"), t);
                 }
@@ -218,6 +221,7 @@ public class Http11Processor extends Abs
                 try {
                     prepareRequest();
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     if (log.isDebugEnabled()) {
                         
log.debug(sm.getString("http11processor.request.prepare"), t);
                     }
@@ -249,6 +253,7 @@ public class Http11Processor extends Abs
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     log.error(sm.getString("http11processor.request.process"), 
t);
                     // 500 - Internal Server Error
                     response.setStatus(500);
@@ -269,6 +274,7 @@ public class Http11Processor extends Abs
                 if (!isAsync())
                     endRequest();
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.error(sm.getString("http11processor.request.finish"), t);
                 // 500 - Internal Server Error
                 response.setStatus(500);
@@ -278,6 +284,7 @@ public class Http11Processor extends Abs
             try {
                 rp.setStage(org.apache.coyote.Constants.STAGE_ENDOUTPUT);
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 log.error(sm.getString("http11processor.response.finish"), t);
                 error = true;
             }
@@ -330,6 +337,7 @@ public class Http11Processor extends Abs
         } catch (InterruptedIOException e) {
             error = true;
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("http11processor.request.process"), t);
             // 500 - Internal Server Error
             response.setStatus(500);

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java?rev=1001932&r1=1001931&r2=1001932&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java Mon Sep 27 
22:12:05 2010
@@ -31,6 +31,7 @@ import javax.management.ObjectName;
 
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.util.modeler.Registry;
 import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
@@ -282,6 +283,7 @@ public class Http11Protocol extends Abst
             // rare-but-nonfatal exceptions, catch them here, and log as
             // above.
             catch (Throwable e) {
+                ExceptionUtils.handleThrowable(e);
                 // any other exception or error is odd. Here we log it
                 // with "ERROR" level, so it will show up even on
                 // less-than-verbose logs.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to