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

Reply via email to