Yes you are correct. The SimpleDeserializers could be shared per thread. Deserializers for multi-ref'd things cannot be shared at all.
Rich Scheuerle XML & Web Services Development 512-838-5115 (IBM TL 678-5115) Glen Daniels <gdaniels@macrome To: "'Axis-Dev (E-mail)'" <[EMAIL PROTECTED]> dia.com> cc: Subject: Concurrency problems (Attn: Rich) 05/01/2002 03:22 PM Please respond to axis-dev I isolated the concurrency failures to two places. First, SAXParserFactories are not guaranteed to be thread-safe, so I synchronized the saxFactory.newSAXParser() call. Second, and much more major - we are apparently "sharing" instances of SimpleDeserializers....?!? I don't understand how this could work in a multi-threaded environment, when each deserializer is maintaining a StringBuffer collecting values from deserialized XML.... I propose we remove all of the code related to sharing deserializers. Serializers may be shared, since they don't have state, but Deserializers must be created on a per-instance basis, or must be redesigned to hold state in TLS or some other thread-safe place. I may be missing something here, so please fill me in if you think this is an incorrect analysis. I will note that turning off sharing in all cases has fixed the concurrency test problems. Sorry for not noticing and commenting on this earlier. --Glen