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