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]>