Author: ehillenius
Date: Sat Dec  9 10:47:40 2006
New Revision: 485027

URL: http://svn.apache.org/viewvc?view=rev&rev=485027
Log:
WICKET-144 (partial rollback)

Modified:
    
incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/Resource.java
    
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Resource.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/Resource.java

Modified: 
incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/Resource.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/Resource.java?view=diff&rev=485027&r1=485026&r2=485027
==============================================================================
--- 
incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/Resource.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/Resource.java
 Sat Dec  9 10:47:40 2006
@@ -18,6 +18,7 @@
 package wicket;
 
 import java.io.OutputStream;
+import java.net.SocketException;
 import java.util.Map;
 
 import org.apache.commons.logging.Log;
@@ -246,7 +247,42 @@
                }
                catch (Exception e)
                {
-                       throw new WicketRuntimeException(e);
+                       // FIXME this doesn't catch all. For instance, Jetty 
(6/ NIO) on
+                       // Unix like platforms will not be recogninzed as 
exceptions
+                       // that should be ignored
+
+                       Throwable throwable = e;
+                       boolean ignoreException = false;
+                       while (throwable != null)
+                       {
+                               if (throwable instanceof SocketException)
+                               {
+                                       String message = throwable.getMessage();
+                                       ignoreException = message != null
+                                                       && 
(message.indexOf("Connection reset by peer") != -1 || message
+                                                                       
.indexOf("Software caused connection abort") != -1);
+                               }
+                               else
+                               {
+                                       ignoreException = 
throwable.getClass().getName()
+                                                       
.indexOf("ClientAbortException") >= 0;
+                                       if (ignoreException)
+                                       {
+                                               if (log.isDebugEnabled())
+                                               {
+                                                       log.debug("Socket 
exception ignored for sending Resource "
+                                                                       + 
"response to client (ClientAbort)", e);
+                                               }
+                                               break;
+                                       }
+                               }
+                               throwable = throwable.getCause();
+                       }
+                       if (!ignoreException)
+                       {
+                               throw new WicketRuntimeException("Unable to 
render resource stream "
+                                               + resourceStream, e);
+                       }
                }
        }
 }

Modified: 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Resource.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Resource.java?view=diff&rev=485027&r1=485026&r2=485027
==============================================================================
--- 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Resource.java 
(original)
+++ 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Resource.java 
Sat Dec  9 10:47:40 2006
@@ -17,6 +17,7 @@
 package wicket;
 
 import java.io.OutputStream;
+import java.net.SocketException;
 import java.util.Map;
 
 import org.apache.commons.logging.Log;
@@ -245,7 +246,42 @@
                }
                catch (Exception e)
                {
-                       throw new WicketRuntimeException(e);
+                       // FIXME this doesn't catch all. For instance, Jetty 
(6/ NIO) on
+                       // Unix like platforms will not be recogninzed as 
exceptions
+                       // that should be ignored
+
+                       Throwable throwable = e;
+                       boolean ignoreException = false;
+                       while (throwable != null)
+                       {
+                               if (throwable instanceof SocketException)
+                               {
+                                       String message = throwable.getMessage();
+                                       ignoreException = message != null
+                                                       && 
(message.indexOf("Connection reset by peer") != -1 || message
+                                                                       
.indexOf("Software caused connection abort") != -1);
+                               }
+                               else
+                               {
+                                       ignoreException = 
throwable.getClass().getName()
+                                                       
.indexOf("ClientAbortException") >= 0;
+                                       if (ignoreException)
+                                       {
+                                               if (log.isDebugEnabled())
+                                               {
+                                                       log.debug("Socket 
exception ignored for sending Resource "
+                                                                       + 
"response to client (ClientAbort)", e);
+                                               }
+                                               break;
+                                       }
+                               }
+                               throwable = throwable.getCause();
+                       }
+                       if (!ignoreException)
+                       {
+                               throw new WicketRuntimeException("Unable to 
render resource stream "
+                                               + resourceStream, e);
+                       }
                }
        }
 }

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/Resource.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/Resource.java?view=diff&rev=485027&r1=485026&r2=485027
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/Resource.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/Resource.java Sat Dec  9 
10:47:40 2006
@@ -17,6 +17,7 @@
 package wicket;
 
 import java.io.OutputStream;
+import java.net.SocketException;
 import java.util.Map;
 
 import org.apache.commons.logging.Log;
@@ -245,7 +246,42 @@
                }
                catch (Exception e)
                {
-                       throw new WicketRuntimeException(e);
+                       // FIXME this doesn't catch all. For instance, Jetty 
(6/ NIO) on
+                       // Unix like platforms will not be recogninzed as 
exceptions
+                       // that should be ignored
+
+                       Throwable throwable = e;
+                       boolean ignoreException = false;
+                       while (throwable != null)
+                       {
+                               if (throwable instanceof SocketException)
+                               {
+                                       String message = throwable.getMessage();
+                                       ignoreException = message != null
+                                                       && 
(message.indexOf("Connection reset by peer") != -1 || message
+                                                                       
.indexOf("Software caused connection abort") != -1);
+                               }
+                               else
+                               {
+                                       ignoreException = 
throwable.getClass().getName()
+                                                       
.indexOf("ClientAbortException") >= 0;
+                                       if (ignoreException)
+                                       {
+                                               if (log.isDebugEnabled())
+                                               {
+                                                       log.debug("Socket 
exception ignored for sending Resource "
+                                                                       + 
"response to client (ClientAbort)", e);
+                                               }
+                                               break;
+                                       }
+                               }
+                               throwable = throwable.getCause();
+                       }
+                       if (!ignoreException)
+                       {
+                               throw new WicketRuntimeException("Unable to 
render resource stream "
+                                               + resourceStream, e);
+                       }
                }
        }
 }


Reply via email to