  | |  | Templates/Transformers + thread safety??? | Templates/Transformers + thread safety??? 2007-02-28 - By Erin Harris
Hi Tom,
I couldn't reproduce the problem using Stream and Xalan 2.7.0 but I could reproduce it using DOM. Are you on a multiprocessor machine or a single processor machine?
Thanks.
Erin Harris
Tom Fennelly <tom.fennelly@(protected)> 27/02/2007 10:23 AM
To Erin Harris/Toronto/IBM@(protected) cc xalan-j-users@(protected) Subject Re: Templates/Transformers + thread safety???
Thanks Erin.
I've updated that test download to include testing against stream source/result instances. Still getting unexpected results on these (stream source/result) when not synschronizing on the template instance. Zip available at http://milyn.codehaus.org/xalan/xalan-test-v2.zip (zip also includes the milyn jar).
Thanks again Erin.
Regards,
Tom.
Erin Harris wrote: > > Hi Tom, > > I couldn't run your test case as I don't have the milyn classes. Have > you tried using StreamSource and StreamResult to see if you get the > same problem? > > Thanks. > > > Erin Harris > > > > > *Tom Fennelly <tom.fennelly@(protected)>* > > 26/02/2007 02:29 PM > > > To > xalan-j-users@(protected) > cc > > Subject > Templates/Transformers + thread safety??? > > > > > > > > > > Hi. > > While running some tests I noticed something strange - applying > transformations concurrently + unsynchronized using the same template > instance *appears* to be yielding unexpected results i.e. if I > synchronize transformations across the threads (synchronize on the > template instance) I have no issues. I'm quite sure I'm doing > something wrong here but haven't found the answer. > > I packaged up the test in a maven2 project > (_http://milyn.codehaus.org/xalan/xalan-test.zip_). If you run the > junit test from the download you'll not see any errors because the > transform step is synchronized on the template instance > (XsltConcurrentTest.java, line 168). If you remove the > synchronization, you start getting errors. > > My understanding was that I should be able to load a stylesheet into a > single instance of javax.xml.transform.Templates and then, on each > Thread, create and use new Transformer instance through a call to > Templates.newTransformer().transform(...). Is this wrong?? > > Environment: > > * Windows XP > * jdk1.5.0_10 > * Xalan 2.7.0 > * Xerces 2.7.1 > * xml-apis 1.3.02 > > I have taken a look around for an answer to this, but I fear that it > may be something silly I'm doing, so I apologize in advance :-[ > > Regards, > > Tom.
<br><font size=2 face="sans-serif">Hi Tom,</font> <br> <br><font size=2 face="sans-serif">I couldn't reproduce the problem using Stream and Xalan 2.7.0 but I could reproduce it using DOM. Are you on a multiprocessor machine or a single processor machine? </font> <br> <br><font size=2 face="sans-serif">Thanks.<br> <br> Erin Harris<br> <br> </font> <br> <br> <br> <table width=100%> <tr valign=top> <td width=40%><font size=1 face="sans-serif"><b>Tom Fennelly <tom.fennelly @(protected)></b> </font> <p><font size=1 face="sans-serif">27/02/2007 10:23 AM</font> <td width=59%> <table width=100%> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">To</font></div> <td><font size=1 face="sans-serif">Erin Harris/Toronto/IBM@(protected)</font> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">cc</font></div> <td><font size=1 face="sans-serif">xalan-j-users@(protected)</font> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">Subject</font></div> <td><font size=1 face="sans-serif">Re: Templates/Transformers + thread safety???</font></table> <br> <table> <tr valign=top> <td> <td></table> <br></table> <br> <br> <br><tt><font size=2>Thanks Erin.<br> <br> I've updated that test download to include testing against stream <br> source/result instances. Still getting unexpected results on these <br> (stream source/result) when not synschronizing on the template <br> instance. Zip available at <br> http://milyn.codehaus.org/xalan/xalan-test-v2.zip (zip also includes the <br> milyn jar).<br> <br> Thanks again Erin.<br> <br> Regards,<br> <br> Tom.<br> <br> <br> Erin Harris wrote:<br> ><br> > Hi Tom,<br> ><br> > I couldn't run your test case as I don't have the milyn classes. Have <br> > you tried using StreamSource and StreamResult to see if you get the <br> > same problem?<br> ><br> > Thanks.<br> ><br> ><br> > Erin Harris<br> ><br> ><br> ><br> ><br> > *Tom Fennelly <tom.fennelly@(protected)>*<br> ><br> > 26/02/2007 02:29 PM<br> ><br> > <br> > To<br> > xalan-j -users@(protected)<br> > cc<br> > <br> > Subject<br> > Templates /Transformers + thread safety???<br> ><br> ><br> ><br> > <br> ><br> ><br> ><br> ><br> ><br> > Hi.<br> ><br> > While running some tests I noticed something strange - applying <br> > transformations concurrently + unsynchronized using the same template <br> > instance *appears* to be yielding unexpected results i.e. if I <br> > synchronize transformations across the threads (synchronize on the <br> > template instance) I have no issues. I'm quite sure I'm doing <br> > something wrong here but haven't found the answer.<br> ><br> > I packaged up the test in a maven2 project <br> > (_http://milyn.codehaus.org/xalan/xalan-test.zip_). If you run the <br> > junit test from the download you'll not see any errors because the <br> > transform step is synchronized on the template instance <br> > (XsltConcurrentTest.java, line 168). If you remove the <br> > synchronization, you start getting errors.<br> ><br> > My understanding was that I should be able to load a stylesheet into a <br> > single instance of javax.xml.transform.Templates and then, on each <br> > Thread, create and use new Transformer instance through a call to <br> > Templates.newTransformer().transform(...). Is this wrong??<br> ><br> > Environment:<br> ><br> > * Windows XP<br> > * jdk1.5.0_10<br> > * Xalan 2.7.0<br> > * Xerces 2.7.1<br> > * xml-apis 1.3.02<br> ><br> > I have taken a look around for an answer to this, but I fear that it <br> > may be something silly I'm doing, so I apologize in advance :-[<br> ><br> > Regards,<br> ><br> > Tom.<br> </font></tt> <br>
|
|
 |