I should be thread-safe, the way it is used here. You could of course, cache the SAXParserFactory instance but I doubt the performance improvement would be measurable. getParser is probably not the best name if you look at it from a bean-oriented angle but it's not that it's called many times anyway. Do you think we should rename it?
On 19.12.2003 13:13:45 John Austin wrote: > I found the following snippet in the class FOFileHandler: > > =============================================================== > /** > * @see org.apache.fop.apps.InputHandler#getParser() > */ > public XMLReader getParser() throws FOPException { > return createParser(); > } > =============================================================== > > and the createParser() method > > =============================================================== > /** > * Creates <code>XMLReader</code> object using default > * <code>SAXParserFactory</code> > * @return the created <code>XMLReader</code> > * @throws FOPException if the parser couldn't be created or > configured for proper operation. > */ > protected static XMLReader createParser() throws FOPException { > try { > SAXParserFactory factory = SAXParserFactory.newInstance(); > factory.setNamespaceAware(true); > factory.setFeature( > "http://xml.org/sax/features/namespace-prefixes", true); > return factory.newSAXParser().getXMLReader(); > > <snip/> > > =============================================================== > > Now it would seem to me that a 'getter' method should not go around > creating objects every time it needs to. It hust doesn't look right. > > I assume that SAXParserFactory is thread-safe. Jeremias Maerki