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