You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2010/01/27 19:12:35 UTC

svn commit: r903775 - /lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java

Author: jukka
Date: Wed Jan 27 18:12:35 2010
New Revision: 903775

URL: http://svn.apache.org/viewvc?rev=903775&view=rev
Log:
TIKA-374: AutoDetectParser not thread-safe

Make XmlRootExtractor thread-safe

Modified:
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java?rev=903775&r1=903774&r2=903775&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/XmlRootExtractor.java Wed Jan 27 18:12:35 2010
@@ -38,11 +38,10 @@
  */
 public class XmlRootExtractor {
 
-    private final SAXParser parser;
+    private final SAXParserFactory factory;
 
     public XmlRootExtractor() throws SAXException, ParserConfigurationException {
-        SAXParserFactory factory = SAXParserFactory.newInstance();
-
+        factory = SAXParserFactory.newInstance();
         factory.setNamespaceAware(true);
         factory.setValidating(false);
         try {
@@ -54,13 +53,12 @@
             // are inherently vulnerable to XML denial-of-service attacks.
         }
 
-        this.parser = factory.newSAXParser();
     }
 
     public QName extractRootElement(byte[] data) {
         ExtractorHandler handler = new ExtractorHandler();
         try {
-            parser.parse(
+            factory.newSAXParser().parse(
                     new ByteArrayInputStream(data),
                     new OfflineContentHandler(handler));
         } catch (Exception ignore) {