cziegeler    2002/07/15 06:41:40

  Modified:    src/java/org/apache/cocoon/servlet CocoonServlet.java
  Log:
  Corrected error handling
  
  Revision  Changes    Path
  1.31      +76 -83    
xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java
  
  Index: CocoonServlet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- CocoonServlet.java        13 Jul 2002 13:13:21 -0000      1.30
  +++ CocoonServlet.java        15 Jul 2002 13:41:40 -0000      1.31
  @@ -918,29 +918,27 @@
   
           // Check if cocoon was initialized
           if (this.cocoon == null) {
  -          if(manageExceptions){
  -            res.reset();
  +            if (manageExceptions) {
  +                res.reset();
   
  -            SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  -            n.setType("fatal");
  -            n.setTitle("Internal servlet error");
  -            n.setSource("Cocoon servlet");
  -            n.setMessage("Cocoon was not initialized.");
  -            n.setDescription("Cocoon was not initialized. Cannot process request.");
  -            n.addExtraDescription("request-uri", request.getRequestURI());
  -
  -            res.setContentType("text/html");
  -            res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -            Notifier.notify(n, res.getOutputStream(), "text/html");
  -         }
  -         else{
  -           res.sendError
  -            (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
  -             "The Cocoon engine said it failed to process the request for an 
unknown reason." );
  -            res.flushBuffer();
  +                SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  +                n.setType("fatal");
  +                n.setTitle("Internal servlet error");
  +                n.setSource("Cocoon servlet");
  +                n.setMessage("Cocoon was not initialized.");
  +                n.setDescription("Cocoon was not initialized. Cannot process 
request.");
  +                n.addExtraDescription("request-uri", request.getRequestURI());
  +
  +                res.setContentType("text/html");
  +                res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  +                Notifier.notify(n, res.getOutputStream(), "text/html");
  +            } else {
  +                res.sendError
  +                (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
  +                 "The Cocoon engine said it failed to process the request for an 
unknown reason." );
  +                res.flushBuffer();
  +            }
               return;
  -         }
  -
           }
   
           // We got it... Process the request
  @@ -1003,28 +1001,27 @@
                       log.fatalError("The Cocoon engine said it failed to process the 
request for an unknown reason.");
   
                       if(manageExceptions){
  -                      res.reset();
  +                        res.reset();
   
  -                      SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  -                      n.setType("error");
  -                      n.setTitle("Cocoon confusion");
  -                      n.setSource("Cocoon servlet");
  -                      n.setMessage("Cocoon engine failed in process.");
  -                      n.setDescription("The Cocoon engine said it failed to process 
the request for an unknown reason.");
  -                      n.addExtraDescription("request-uri", request.getRequestURI());
  -                      n.addExtraDescription("path-info", uri);
  -
  -                      res.setContentType("text/html");
  -                      res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -                      Notifier.notify(n, res.getOutputStream(), "text/html");
  -                    }
  -                    else{
  -                      res.sendError
  -                       (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
  -                        "The Cocoon engine said it failed to process the request 
for an unknown reason." );
  -                      res.flushBuffer();
  -                      return;
  +                        SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  +                        n.setType("error");
  +                        n.setTitle("Cocoon confusion");
  +                        n.setSource("Cocoon servlet");
  +                        n.setMessage("Cocoon engine failed in process.");
  +                        n.setDescription("The Cocoon engine said it failed to 
process the request for an unknown reason.");
  +                        n.addExtraDescription("request-uri", 
request.getRequestURI());
  +                        n.addExtraDescription("path-info", uri);
  +
  +                        res.setContentType("text/html");
  +                        res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  +                        Notifier.notify(n, res.getOutputStream(), "text/html");
  +                    } else {
  +                        res.sendError
  +                          (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
  +                          "The Cocoon engine said it failed to process the request 
for an unknown reason." );
  +                        res.flushBuffer();
                       }
  +                    return;
   
                   }
               } catch (ResourceNotFoundException rse) {
  @@ -1032,36 +1029,34 @@
                       log.warn("The resource was not found", rse);
                   }
   
  -                if(manageExceptions){
  -                  res.reset();
  +                if (manageExceptions) {
  +                    res.reset();
   
  -                  SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  -                  n.setType("resource-not-found");
  -                  n.setTitle("Resource not found");
  -                  n.setSource("Cocoon servlet");
  -                  n.setMessage("Resource not found");
  -                  n.setDescription("The requested URI \""
  +                    SimpleNotifyingBean n = new SimpleNotifyingBean(this);
  +                    n.setType("resource-not-found");
  +                    n.setTitle("Resource not found");
  +                    n.setSource("Cocoon servlet");
  +                    n.setMessage("Resource not found");
  +                    n.setDescription("The requested URI \""
                                      + request.getRequestURI()
                                      + "\" was not found.");
  -                  n.addExtraDescription("request-uri", request.getRequestURI());
  -                  n.addExtraDescription("path-info", uri);
  +                    n.addExtraDescription("request-uri", request.getRequestURI());
  +                    n.addExtraDescription("path-info", uri);
   
  -                  res.setContentType("text/html");
  -                  res.setStatus(HttpServletResponse.SC_NOT_FOUND);
  -                  Notifier.notify(n, res.getOutputStream(), "text/html");
  -                  }
  -                  else{
  +                    res.setContentType("text/html");
  +                    res.setStatus(HttpServletResponse.SC_NOT_FOUND);
  +                    Notifier.notify(n, res.getOutputStream(), "text/html");
  +                } else {
                       res.sendError
                        (HttpServletResponse.SC_NOT_FOUND, "Resource not found." );
                       res.flushBuffer();
  -                    return;
  -                  }
  +                }
  +                return;
   
               } catch (ConnectionResetException cre) {
                   if (log.isDebugEnabled()) {
                       log.debug("The connection was reset", cre);
  -                }
  -                else if (log.isWarnEnabled()) {
  +                } else if (log.isWarnEnabled()) {
                       log.warn("The connection was reset.");
                   }
   
  @@ -1070,30 +1065,29 @@
                       log.error("Problem with Cocoon servlet", e);
                   }
   
  -                if(manageExceptions){
  -                  res.reset();
  +                if (manageExceptions) {
  +                    res.reset();
   
  -                  HashMap extraDescriptions = new HashMap(3);
  -                  extraDescriptions.put("request-uri", request.getRequestURI());
  -                  extraDescriptions.put("path-info", uri);
  -                  StringWriter writer = new StringWriter();
  -                  e.printStackTrace(new PrintWriter(writer));
  -                  extraDescriptions.put("stack-trace",writer.toString());
  -
  -                  Notifying n=new DefaultNotifyingBuilder().build(
  -                   this, e, "fatal","Internal server error","Cocoon 
servlet",null,null,extraDescriptions);
  -
  -                  res.setContentType("text/html");
  -                  res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -                  Notifier.notify(n, res.getOutputStream(), "text/html");
  -                  }
  -                  else{
  +                    HashMap extraDescriptions = new HashMap(3);
  +                    extraDescriptions.put("request-uri", request.getRequestURI());
  +                    extraDescriptions.put("path-info", uri);
  +                    StringWriter writer = new StringWriter();
  +                    e.printStackTrace(new PrintWriter(writer));
  +                    extraDescriptions.put("stack-trace",writer.toString());
  +
  +                    Notifying n=new DefaultNotifyingBuilder().build(
  +                    this, e, "fatal","Internal server error","Cocoon 
servlet",null,null,extraDescriptions);
  +
  +                    res.setContentType("text/html");
  +                    res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  +                    Notifier.notify(n, res.getOutputStream(), "text/html");
  +                } else {
                       res.sendError
                        (HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                         "Internal server error.");
                       res.flushBuffer();
  -                    return;
  -                  }
  +                }
  +                return;
               }
   
               long end = System.currentTimeMillis();
  @@ -1125,9 +1119,8 @@
                    ServletOutputStream out = res.getOutputStream();
                    out.flush();
                    out.close();
  -            }
  -            catch(Exception e){
  -              log.error("Cocoon servlet threw an Exception while trying to close 
stream.", e);
  +            } catch(Exception e) {
  +                  log.error("Cocoon servlet threw an Exception while trying to 
close stream.", e);
               }
   
           }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to