You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2020/08/24 13:28:56 UTC

svn commit: r1881140 - in /jackrabbit/branches/2.16: ./ jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java

Author: reschke
Date: Mon Aug 24 13:28:56 2020
New Revision: 1881140

URL: http://svn.apache.org/viewvc?rev=1881140&view=rev
Log:
JCR-4541: reduce classpath lookups for SaxParserFactory (patch by Lars Grefer) (merged r1877352 into 2.16)

Modified:
    jackrabbit/branches/2.16/   (props changed)
    jackrabbit/branches/2.16/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java
    jackrabbit/branches/2.16/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java

Propchange: jackrabbit/branches/2.16/
------------------------------------------------------------------------------
  Merged /jackrabbit/trunk:r1877352

Modified: jackrabbit/branches/2.16/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.16/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java?rev=1881140&r1=1881139&r2=1881140&view=diff
==============================================================================
--- jackrabbit/branches/2.16/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java (original)
+++ jackrabbit/branches/2.16/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/ParsingContentHandler.java Mon Aug 24 13:28:56 2020
@@ -36,6 +36,13 @@ import org.xml.sax.helpers.DefaultHandle
  */
 public class ParsingContentHandler extends DefaultContentHandler {
 
+    private static final SAXParserFactory SAX_PARSER_FACTORY;
+
+    static {
+        SAX_PARSER_FACTORY = SAXParserFactory.newInstance();
+        SAX_PARSER_FACTORY.setNamespaceAware(true);
+    }
+
     /**
      * Creates a {@link DefaultHandler} adapter for the given content
      * handler.
@@ -57,9 +64,7 @@ public class ParsingContentHandler exten
      */
     public void parse(InputStream in) throws IOException, SAXException {
         try {
-            SAXParserFactory factory = SAXParserFactory.newInstance();
-            factory.setNamespaceAware(true);
-            factory.newSAXParser().parse(new InputSource(in), this);
+            SAX_PARSER_FACTORY.newSAXParser().parse(new InputSource(in), this);
         } catch (ParserConfigurationException e) {
             throw new SAXException("SAX parser configuration error", e);
         }

Modified: jackrabbit/branches/2.16/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.16/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java?rev=1881140&r1=1881139&r2=1881140&view=diff
==============================================================================
--- jackrabbit/branches/2.16/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java (original)
+++ jackrabbit/branches/2.16/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java Mon Aug 24 13:28:56 2020
@@ -110,6 +110,13 @@ public class SessionImpl extends Abstrac
 
     private static Logger log = LoggerFactory.getLogger(SessionImpl.class);
 
+    private static final SAXParserFactory SAX_PARSER_FACTORY;
+
+    static {
+        SAX_PARSER_FACTORY = SAXParserFactory.newInstance();
+        SAX_PARSER_FACTORY.setNamespaceAware(true);
+    }
+
     private boolean alive;
 
     /**
@@ -390,12 +397,10 @@ public class SessionImpl extends Abstrac
         // NOTE: checks are performed by 'getImportContentHandler'
         ImportHandler handler = (ImportHandler) getImportContentHandler(parentAbsPath, uuidBehavior);
         try {
-            SAXParserFactory factory = SAXParserFactory.newInstance();
-            factory.setNamespaceAware(true);
-            factory.setFeature(
+            SAX_PARSER_FACTORY.setFeature(
                     "http://xml.org/sax/features/namespace-prefixes", false);
 
-            SAXParser parser = factory.newSAXParser();
+            SAXParser parser = SAX_PARSER_FACTORY.newSAXParser();
             parser.parse(new InputSource(in), handler);
         } catch (SAXException se) {
             // check for wrapped repository exception