You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by di...@apache.org on 2001/12/23 17:00:33 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav WebdavServlet.java

dirkv       01/12/23 08:00:33

  Modified:    src/webdav/server/org/apache/slide/webdav WebdavServlet.java
  Log:
  make request/response logging code more robust
  (see also bug 5578)
  
  Revision  Changes    Path
  1.30      +67 -46    jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- WebdavServlet.java	2001/10/11 05:52:15	1.29
  +++ WebdavServlet.java	2001/12/23 16:00:33	1.30
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.29 2001/10/11 05:52:15 remm Exp $
  - * $Revision: 1.29 $
  - * $Date: 2001/10/11 05:52:15 $
  + * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.30 2001/12/23 16:00:33 dirkv Exp $
  + * $Revision: 1.30 $
  + * $Date: 2001/12/23 16:00:33 $
    *
    * ====================================================================
    *
  @@ -109,7 +109,7 @@
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
    * @author Dirk Verbeeck
  - * @version $Revision: 1.29 $
  + * @version $Revision: 1.30 $
    */
   public class WebdavServlet extends HttpServlet {
       
  @@ -237,16 +237,23 @@
               
               // if logging for the request/response is required initialise the
               // facades
  -            if (token.getLogger().isEnabled
  -                ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  -                 Logger.DEBUG)) {
  -                if (req != null)  
  -                    req = new XHttpServletRequestFacade(req);
  -                if (resp != null) 
  -                    resp = new XHttpServletResponseFacade(resp);
  -            } else {
  -                if (resp != null) 
  -                    resp = new XHttpServletResponseSimpleFacade(resp);
  +            try 
  +            {
  +                if (token.getLogger().isEnabled
  +                    ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  +                     Logger.DEBUG)) {
  +                    if (req != null)  
  +                        req = new XHttpServletRequestFacade(req);
  +                    if (resp != null) 
  +                        resp = new XHttpServletResponseFacade(resp);
  +                } else {
  +                    if (resp != null) 
  +                        resp = new XHttpServletResponseSimpleFacade(resp);
  +                }
  +            }
  +            catch (Throwable ex) 
  +            {
  +                // ignore logging errors
               }
               
               resp.setStatus(WebdavStatus.SC_OK);
  @@ -268,47 +275,61 @@
               
               // if logging for the request/response is required 
               // perform the logging
  -            if (token.getLogger().isEnabled
  -                ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  -                 Logger.DEBUG)) {
  -                XMLTestCaseGenerator xmlGen = new XMLTestCaseGenerator
  -                    ((XHttpServletRequestFacade)req,
  -                     (XHttpServletResponseFacade)resp);
  -                xmlGen.setThreadName(Thread.currentThread().getName());
  +            try 
  +            {
  +                if (token.getLogger().isEnabled
  +                    ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  +                     Logger.DEBUG)) {
  +                    XMLTestCaseGenerator xmlGen = new XMLTestCaseGenerator
  +                        ((XHttpServletRequestFacade)req,
  +                         (XHttpServletResponseFacade)resp);
  +                    xmlGen.setThreadName(Thread.currentThread().getName());
  +                    token.getLogger().log
  +                        (xmlGen.toString(),
  +                         "org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  +                         Logger.DEBUG);
  +                }
  +            }
  +            catch (Throwable ex) 
  +            {
  +                // ignore logging errors
  +            }
  +
  +            try 
  +            {            
                   token.getLogger().log
  -                    (xmlGen.toString(),
  -                     "org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
  -                     Logger.DEBUG);
  +                    (req.getMethod()
  +                     + ( (resp instanceof XHttpServletResponseFacade)
  +                         ? (" = " + ((XHttpServletResponseFacade)resp)
  +                            .getStatus()
  +                            + " " + (WebdavStatus.getStatusText
  +                                     (((XHttpServletResponseFacade)resp)
  +                                      .getStatus())))
  +                         : (" = " + ((XHttpServletResponseSimpleFacade)resp)
  +                            .getStatus()
  +                            + " " + (WebdavStatus.getStatusText
  +                                     (((XHttpServletResponseSimpleFacade)resp)
  +                                      .getStatus()))) )
  +                     + " (time: " + (System.currentTimeMillis() - startTime)
  +                     + " ms)"
  +                     + " URI = " 
  +                     + WebdavUtils.getRelativePath
  +                     (req, (WebdavServletConfig)getServletConfig()), 
  +                     LOG_CHANNEL, Logger.INFO);
               }
  -            
  -            token.getLogger().log
  -                (req.getMethod()
  -                 + ( (resp instanceof XHttpServletResponseFacade)
  -                     ? (" = " + ((XHttpServletResponseFacade)resp)
  -                        .getStatus()
  -                        + " " + (WebdavStatus.getStatusText
  -                                 (((XHttpServletResponseFacade)resp)
  -                                  .getStatus())))
  -                     : (" = " + ((XHttpServletResponseSimpleFacade)resp)
  -                        .getStatus()
  -                        + " " + (WebdavStatus.getStatusText
  -                                 (((XHttpServletResponseSimpleFacade)resp)
  -                                  .getStatus()))) )
  -                 + " (time: " + (System.currentTimeMillis() - startTime)
  -                 + " ms)"
  -                 + " URI = " 
  -                 + WebdavUtils.getRelativePath
  -                 (req, (WebdavServletConfig)getServletConfig()), 
  -                 LOG_CHANNEL, Logger.INFO);
  +            catch (Throwable ex) 
  +            {
  +                // ignore logging errors
  +            }
               
           } catch (WebdavException e) {
               // There has been an error somewhere ...
  -            resp.sendError(e.getStatusCode());
               token.getLogger().log(e,LOG_CHANNEL, Logger.ERROR);
  +            try { resp.sendError(e.getStatusCode()); } catch (Throwable ex) { }
           } catch (Throwable e) {
               // If something goes really wrong ...
  -            resp.sendError(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
               token.getLogger().log(e,LOG_CHANNEL, Logger.ERROR);
  +            try { resp.sendError(WebdavStatus.SC_INTERNAL_SERVER_ERROR); } catch (Throwable ex) { }
           }
   
       }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>