Hi,

I am using Castor as an xml data binding tool which internally
uses org.apache.xerces.jaxp.SAXParserImpl to parse and un-marshall to java
object.

on very heavy load/concurrency e.g. around 20-25 thousand transactions in
30 mins we could see that we get the un-marshalled java object which has
some values coming from different xml document i.e. a wrong java object.

I have seen the castor code which is very simple and looks very much thread
safe. So the doubt for this problem looks like in the parser code. Castor
always creates a new Parser instance for every new request.

I could see inner class "JAXPSAXParser"  defined in
org.apache.xerces.jaxp.SAXParserImpl which internally has synchronized
methods except the parse method. I don't understand why these are
synchronized when the class JAXPSAXParser is always instantiated in
SAXParserImpl object.

 Could somebody help in this regard? Do we have any fix for this?



Java verison : jdk 1.7

xerces -  2.11



 Thanks,

Kasivisweswara Rao.D

Reply via email to