You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by dineshk <di...@yahoo.com.INVALID> on 2016/08/02 15:44:52 UTC

Parser does not looks thread safe.

 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.7xerces -  2.11

RegardsDinesh