Hi Sylvain, unfortunately the underlying JAXP classes (SAXParserFactory etc.) are not guaranteed to be thread safe. As the parser uses them in the parse method, it cannot be thread safe either.
But changing the parser interface in a way you suggest, will be considered when it's moved to Avalon (except the thread-safe point). Carsten > > Hi team, > > After seeing the recent changes to Parser, I wondered why this component > cannot be ThreadSafe. The answer is simple : Parser extends XMLProducer > and thus setConsumer() must be called before parse(). > > Searching for Parser use in the sources, I found that it doesn't seem to > be used as an XMLProducer, but always as a Parser, and that the two > calls setConsumer() and parse() always come together. > > So, what about a stateless interface for parsing, which would simply > mean moving the XMLConsumer parameter from setConsumer() to parse() ? > > interface StatelessParser extends DOMFactory { > void parse(InputSource source, XMLConsumer consumer); > void parse(InputSource source, ContentHandler ch); > Document parseDocument(InputSource is); > } > > Since XML parsing is widely used, this would be a step further for > speeding up Cocoon. > > Thoughts ? > -- > Sylvain Wallez > Anyware Technologies - http://www.anyware-tech.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]