Re: [xsl] Templates.newTransformer synchronization

Subject: Re: [xsl] Templates.newTransformer synchronization
From: "Mohsen Saboorian" <mohsens@xxxxxxxxx>
Date: Mon, 17 Jul 2006 17:26:47 +0330
I cached a number of transFactory.newTemplates(xslSource) instances
inside a synchronozed map. Then used a servlet to generate the html
output of the transformation. Using Microsoft Application Center Test
(web based stress tester), with 30 simultaneos connections, and 1000
times of a request to that servlet
Saxon: had no problem with that.
Xalan: gives ArrayIndexOutOfBound:
------------------
java.lang.ArrayIndexOutOfBoundsException: -1
	at com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2._exptype2(SAX2DTM2.java:1925)
	at com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2.getNodeNameX(SAX2DTM2.java:2666)
	at com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getNodeNameX(DOMAdapter.java:264)
	at tabular$1.test(pred(=(variable-ref(colName/node-set), funcall(name, []))))
---------------------
When I cached translets (instead of translet.newTransformer()), there
was no problem with Xalan.
So I think this could not be thread-safe.

About the test result:
_______________________
Saxon (8.7.1)
Properties
Test type: Dynamic
Simultaneous browser connections: 2
Warm up time (secs): 0
Test duration: 00:00:00:42
Test iterations: 1,000
Detailed test results generated: Yes
Summary

Total number of requests: 6,000
Total number of connections: 6,000

Average requests per second: 142.86
Average time to first byte (msecs): 7.13
Average time to last byte (msecs): 7.31
Average time to last byte per iteration (msecs): 43.84

Number of unique requests made in test: 6
Number of unique response codes: 1

--------------------

Xalan (JRE 5)
Properties
Test type: Dynamic
Simultaneous browser connections: 2
Warm up time (secs): 0
Test duration: 00:00:00:34
Test iterations: 1,000
Detailed test results generated: Yes
Summary

Total number of requests: 6,000
Total number of connections: 6,000

Average requests per second: 176.47
Average time to first byte (msecs): 5.04
Average time to last byte (msecs): 5.22
Average time to last byte per iteration (msecs): 31.32

Number of unique requests made in test: 6
Number of unique response codes: 1
_______________________

Xalan overall time: 34sec
Saxon overall time: 42sec.

My XSLT was version 1.0.
I used no specific configuration for either libraries, so the results
may be inaccurate.

Current Thread