donaldp     2002/07/10 01:34:45

  Modified:    xmlutil/src/java/org/apache/avalon/excalibur/xml
                        XercesParser.java
  Log:
  Make parser threadsafe
  
  Revision  Changes    Path
  1.4       +4 -41     
jakarta-avalon-excalibur/xmlutil/src/java/org/apache/avalon/excalibur/xml/XercesParser.java
  
  Index: XercesParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/xmlutil/src/java/org/apache/avalon/excalibur/xml/XercesParser.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XercesParser.java 9 Jul 2002 13:57:57 -0000       1.3
  +++ XercesParser.java 10 Jul 2002 08:34:45 -0000      1.4
  @@ -9,7 +9,7 @@
   
   import java.io.IOException;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.thread.SingleThreaded;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   import org.apache.xerces.dom.DocumentImpl;
   import org.apache.xerces.parsers.DOMParser;
   import org.apache.xerces.parsers.SAXParser;
  @@ -29,17 +29,8 @@
    */
   public class XercesParser
       extends AbstractLogEnabled
  -    implements Parser, ErrorHandler, SingleThreaded
  +    implements Parser, ErrorHandler, ThreadSafe
   {
  -    /** the SAX Parser */
  -    private SAXParser m_parser;
  -
  -    public XercesParser()
  -        throws SAXException
  -    {
  -        m_parser = createSAXParser();
  -    }
  -
       public void parse( final InputSource in,
                          final ContentHandler consumer )
           throws SAXException, IOException
  @@ -64,7 +55,7 @@
                          final LexicalHandler lexicalHandler )
           throws SAXException, IOException
       {
  -        final SAXParser parser = getSAXParser();
  +        final SAXParser parser = createSAXParser();
   
           if( null != lexicalHandler )
           {
  @@ -74,13 +65,6 @@
           parser.setErrorHandler( this );
           parser.setContentHandler( contentHandler );
           parser.parse( in );
  -
  -        //Note it is a deliberate choice to make sure that
  -        //the parser is only released when a successful parse
  -        //has occured. If an exception is generated the
  -        //parser becomes fubar so we need to let it go into
  -        //the void to be garbage collected
  -        releaseSAXParser( parser );
       }
   
       /**
  @@ -155,27 +139,6 @@
               spe.getLineNumber() + " col. " + spe.getColumnNumber() +
               "): " + spe.getMessage();
           throw new SAXException( message, spe );
  -    }
  -
  -    /**
  -     * Aquire a parser from the pool of [EMAIL PROTECTED] SAXParser} objects.
  -     *
  -     * @return the parser
  -     */
  -    private SAXParser getSAXParser()
  -        throws SAXException
  -    {
  -        return m_parser;
  -    }
  -
  -    /**
  -     * Utility method to release parser back into pool.
  -     *
  -     * @param parser the parser
  -     */
  -    private void releaseSAXParser( final SAXParser parser )
  -    {
  -        m_parser = parser;
       }
   
       /**
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to