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 {