You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2009/11/11 10:23:16 UTC
svn commit: r834816 -
/servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java
Author: gertv
Date: Wed Nov 11 09:23:16 2009
New Revision: 834816
URL: http://svn.apache.org/viewvc?rev=834816&view=rev
Log:
SMXCOMP-672: Use cached DocumentBuilder for creating Document instances
Modified:
servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java
Modified: servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java
URL: http://svn.apache.org/viewvc/servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java?rev=834816&r1=834815&r2=834816&view=diff
==============================================================================
--- servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java (original)
+++ servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/util/DomUtil.java Wed Nov 11 09:23:16 2009
@@ -21,6 +21,7 @@
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
@@ -45,11 +46,12 @@
public class DomUtil {
private static DocumentBuilderFactory documentBuilderFactory;
+ private static DocumentBuilder documentBuilder;
private static TransformerFactory transformerFactory;
public static Document createDocument() {
try {
- return getDocumentBuilderFactory().newDocumentBuilder().newDocument();
+ return getDocumentBuilder().newDocument();
} catch (ParserConfigurationException e) {
throw new Fault(e);
}
@@ -89,6 +91,17 @@
}
return documentBuilderFactory;
}
+
+ /**
+ * Returns a cached DocumentBuilder instance - should only be used for methods that are considered thread-safe
+ * (e.g. {@link DocumentBuilder#newDocument})
+ */
+ public static DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
+ if (documentBuilder == null) {
+ documentBuilder = getDocumentBuilderFactory().newDocumentBuilder();
+ }
+ return documentBuilder;
+ }
public static TransformerFactory getTransformerFactory() {
if (transformerFactory == null) {