remm        01/07/24 18:07:26

  Modified:    catalina/src/share/org/apache/catalina/servlets
                        WebdavServlet.java
  Log:
  - An instance of DocumentBuilderFactory is not thread safe, so we cannot
    keep a reference to one in the servlet instance.
  
  Revision  Changes    Path
  1.23      +23 -26    
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- WebdavServlet.java        2001/07/24 01:30:59     1.22
  +++ WebdavServlet.java        2001/07/25 01:07:25     1.23
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.22 2001/07/24 01:30:59 remm Exp $
  - * $Revision: 1.22 $
  - * $Date: 2001/07/24 01:30:59 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.23 2001/07/25 01:07:25 remm Exp $
  + * $Revision: 1.23 $
  + * $Date: 2001/07/25 01:07:25 $
    *
    * ====================================================================
    *
  @@ -126,7 +126,7 @@
    * are handled by the DefaultServlet.
    *
    * @author Remy Maucherat
  - * @version $Revision: 1.22 $ $Date: 2001/07/24 01:30:59 $
  + * @version $Revision: 1.23 $ $Date: 2001/07/25 01:07:25 $
    */
   
   public class WebdavServlet
  @@ -216,12 +216,6 @@
   
   
       /**
  -     * JAXP Document builder factory.
  -     */
  -    private DocumentBuilderFactory documentBuilderFactory;
  -
  -
  -    /**
        * Repository of the locks put on single resources.
        * <p>
        * Key : path <br>
  @@ -276,8 +270,6 @@
               ;
           }
   
  -        documentBuilderFactory = DocumentBuilderFactory.newInstance();
  -
       }
   
   
  @@ -285,6 +277,23 @@
   
   
       /**
  +     * Return JAXP document builder instance.
  +     */
  +    protected DocumentBuilder getDocumentBuilder()
  +        throws ServletException {
  +        DocumentBuilder documentBuilder = null;
  +        try {
  +            documentBuilder = 
  +                DocumentBuilderFactory.newInstance().newDocumentBuilder();
  +        } catch(ParserConfigurationException e) {
  +            throw new ServletException
  +                (sm.getString("webdavservlet.jaxpfailed"));
  +        }
  +        return documentBuilder;
  +    }
  +
  +
  +    /**
        * Handles the special WebDAV methods.
        */
       protected void service(HttpServletRequest req, HttpServletResponse resp)
  @@ -434,13 +443,7 @@
   
           Node propNode = null;
   
  -        DocumentBuilder documentBuilder = null;
  -        try {
  -            documentBuilder = documentBuilderFactory.newDocumentBuilder();
  -        } catch(ParserConfigurationException e) {
  -            throw new ServletException
  -                (sm.getString("webdavservlet.jaxpfailed"));
  -        }
  +        DocumentBuilder documentBuilder = getDocumentBuilder();
   
           try {
               Document document = documentBuilder.parse
  @@ -896,13 +899,7 @@
   
           Node lockInfoNode = null;
   
  -        DocumentBuilder documentBuilder = null;
  -        try {
  -            documentBuilder = documentBuilderFactory.newDocumentBuilder();
  -        } catch(ParserConfigurationException e) {
  -            throw new ServletException
  -                (sm.getString("webdavservlet.jaxpfailed"));
  -        }
  +        DocumentBuilder documentBuilder = getDocumentBuilder();
   
           try {
               Document document = documentBuilder.parse(new InputSource
  
  
  

Reply via email to