vgritsenko    2003/07/30 20:54:22

  Modified:    src/java/org/apache/cocoon/components/pipeline
                        AbstractProcessingPipeline.java
               src/java/org/apache/cocoon/components/pipeline/impl
                        AbstractCachingProcessingPipeline.java
               src/java/org/apache/cocoon/servlet CocoonServlet.java
  Log:
  Attemp to reduce amount of socket exception stacktraces in the error log.
  To get bunch of them, go to 
http://localhost:8888/samples/linkstatus/localhost/8888/docs/index.html
  
  Revision  Changes    Path
  1.6       +3 -2      
cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java
  
  Index: AbstractProcessingPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractProcessingPipeline.java   11 Jul 2003 08:59:03 -0000      1.5
  +++ AbstractProcessingPipeline.java   31 Jul 2003 03:54:22 -0000      1.6
  @@ -611,7 +611,8 @@
               }
           } catch ( SocketException se ) {
               if (se.getMessage().indexOf("reset") > 0
  -                || se.getMessage().indexOf("aborted") > 0) {
  +                    || se.getMessage().indexOf("aborted") > 0
  +                    || se.getMessage().indexOf("connection abort") > 0) {
                   throw new ConnectionResetException("Connection reset by peer", se);
               } else {
                   throw new ProcessingException("Failed to execute reader pipeline.", 
se);
  
  
  
  1.9       +7 -4      
cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/impl/AbstractCachingProcessingPipeline.java
  
  Index: AbstractCachingProcessingPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/impl/AbstractCachingProcessingPipeline.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractCachingProcessingPipeline.java    14 Jul 2003 16:06:20 -0000      1.8
  +++ AbstractCachingProcessingPipeline.java    31 Jul 2003 03:54:22 -0000      1.9
  @@ -242,7 +242,8 @@
                   }
               } catch ( SocketException se ) {
                   if (se.getMessage().indexOf("reset") > 0
  -                        || se.getMessage().indexOf("aborted") > 0) {
  +                        || se.getMessage().indexOf("aborted") > 0
  +                        || se.getMessage().indexOf("connection abort") > 0) {
                       throw new ConnectionResetException("Connection reset by peer", 
se);
                   } else {
                       throw new ProcessingException("Failed to execute reader 
pipeline.", se);
  @@ -313,7 +314,8 @@
   
               } catch ( SocketException se ) {
                   if (se.getMessage().indexOf("reset") > 0
  -                        || se.getMessage().indexOf("aborted") > 0) {
  +                        || se.getMessage().indexOf("aborted") > 0
  +                        || se.getMessage().indexOf("connection abort") > 0) {
                       throw new ConnectionResetException("Connection reset by peer", 
se);
                   } else {
                       throw new ProcessingException("Failed to execute reader 
pipeline.", se);
  @@ -853,7 +855,8 @@
               }
           } catch ( SocketException se ) {
               if (se.getMessage().indexOf("reset") > 0
  -                    || se.getMessage().indexOf("aborted") > 0) {
  +                    || se.getMessage().indexOf("aborted") > 0
  +                    || se.getMessage().indexOf("connection abort") > 0) {
                   throw new ConnectionResetException("Connection reset by peer", se);
               } else {
                   throw new ProcessingException("Failed to execute pipeline.", se);
  
  
  
  1.10      +25 -5     cocoon-2.1/src/java/org/apache/cocoon/servlet/CocoonServlet.java
  
  Index: CocoonServlet.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/servlet/CocoonServlet.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- CocoonServlet.java        9 Jul 2003 07:42:22 -0000       1.9
  +++ CocoonServlet.java        31 Jul 2003 03:54:22 -0000      1.10
  @@ -58,6 +58,7 @@
   import java.io.OutputStream;
   import java.lang.reflect.Constructor;
   import java.net.MalformedURLException;
  +import java.net.SocketException;
   import java.net.URL;
   import java.net.URLDecoder;
   import java.util.ArrayList;
  @@ -1111,11 +1112,19 @@
                                   "The requested resource \"" + 
request.getRequestURI() + "\" could not be found",
                                   rse);
                   return;
  +
  +            } catch ( SocketException se ) {
  +                if (log.isDebugEnabled()) {
  +                    log.debug("The connection was reset", se);
  +                } else if (log.isWarnEnabled()) {
  +                    log.warn(se.getMessage());
  +                }
  +
               } catch (ConnectionResetException cre) {
                   if (log.isDebugEnabled()) {
  -                    log.debug("The connection was reset", cre);
  +                    log.debug(cre.getMessage(), cre);
                   } else if (log.isWarnEnabled()) {
  -                    log.warn("The connection was reset.");
  +                    log.warn(cre.getMessage());
                   }
   
               } catch (Exception e) {
  @@ -1153,7 +1162,10 @@
                   }
               }
           } finally {
  -            if (ctxMap != null) ctxMap.clear();
  +            if (ctxMap != null) {
  +                ctxMap.clear();
  +            }
  +
               try {            
                   if (request instanceof MultipartHttpServletRequest) {
                       ((MultipartHttpServletRequest) request).cleanup();
  @@ -1161,11 +1173,19 @@
               } catch (IOException e) {
                   log.error("Cocoon got an Exception while trying to cleanup the 
uploaded files.", e);
               }
  +
               try {
                   ServletOutputStream out = res.getOutputStream();
                   out.flush();
                   out.close();
  -            } catch(Exception e) {
  +            } catch (SocketException se) {
  +                if (log.isDebugEnabled()) {
  +                    log.debug("SocketException while trying to close stream.", se);
  +                } else if (log.isWarnEnabled()) {
  +                    log.warn("SocketException while trying to close stream.");
  +                }
  +
  +            } catch (Exception e) {
                   log.error("Cocoon got an Exception while trying to close stream.", 
e);
               }
           }
  
  
  

Reply via email to