Author: boisvert
Date: Thu Mar  1 15:53:25 2007
New Revision: 513554

URL: http://svn.apache.org/viewvc?view=rev&rev=513554
Log:
Cache transformer instance for better performance

Modified:
    
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java

Modified: 
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java?view=diff&rev=513554&r1=513553&r2=513554
==============================================================================
--- 
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
 (original)
+++ 
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
 Thu Mar  1 15:53:25 2007
@@ -46,6 +46,8 @@
     /** Cache of the parsed messages. */
     private static Map<Source, Document> __parsed = 
Collections.synchronizedMap(new WeakHashMap<Source, Document>());
 
+    private static ThreadLocal<Transformer> __txers = new ThreadLocal();
+
     protected BaseXmlMapper() {
         _transformerFactory = TransformerFactory.newInstance();
     }
@@ -58,13 +60,16 @@
         if (parsed != null)
             return parsed.getDocumentElement();
 
-        Transformer txer = null;
+        Transformer txer = __txers.get();
+        if (txer == null) {
         try {
             txer = _transformerFactory.newTransformer();
+                __txers.set(txer);
         } catch (TransformerConfigurationException e) {
             String errmsg = "Transformer configuration error!";
             __log.fatal(errmsg, e);
             throw new Error(errmsg, e);
+        }
         }
 
         try {


Reply via email to