This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch feature/SLING-12529-factories-thread-safe
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-osgi-mock.git

commit 36de60037c26b29d4a4a0dbd22c753debfa79878
Author: Stefan Seifert <[email protected]>
AuthorDate: Mon Dec 9 17:32:48 2024 +0100

    SLING-12529 XPathFactory is not thread-safe
---
 .../apache/sling/testing/mock/osgi/OsgiMetadataUtil.java  | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git 
a/core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java 
b/core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
index 3a2570e..7728896 100644
--- 
a/core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
+++ 
b/core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
@@ -72,15 +72,6 @@ final class OsgiMetadataUtil {
     private static final String METADATA_PATH = "OSGI-INF";
     private static final String METADATA_METATYPE_PATH = "OSGI-INF/metatype/";
 
-    private static final DocumentBuilderFactory DOCUMENT_BUILDER_FACTORY;
-
-    static {
-        DOCUMENT_BUILDER_FACTORY = DocumentBuilderFactory.newInstance();
-        DOCUMENT_BUILDER_FACTORY.setNamespaceAware(true);
-    }
-
-    private static final XPathFactory XPATH_FACTORY = 
XPathFactory.newInstance();
-
     private static final BidiMap<String, String> NAMESPACES = new 
TreeBidiMap<>();
 
     static {
@@ -145,7 +136,7 @@ final class OsgiMetadataUtil {
     private static Map<String, Document> initMetadataDocumentCache() {
         Map<String, Document> cacheMap = new HashMap<>();
 
-        XPath xpath = XPATH_FACTORY.newXPath();
+        XPath xpath = XPathFactory.newInstance().newXPath();
         xpath.setNamespaceContext(NAMESPACE_CONTEXT);
         XPathExpression xpathExpression;
         try {
@@ -356,7 +347,7 @@ final class OsgiMetadataUtil {
 
     private static NodeList queryNodes(Document metadata, String xpathQuery) {
         try {
-            XPath xpath = XPATH_FACTORY.newXPath();
+            XPath xpath = XPathFactory.newInstance().newXPath();
             xpath.setNamespaceContext(NAMESPACE_CONTEXT);
             return (NodeList) xpath.evaluate(xpathQuery, metadata, 
XPathConstants.NODESET);
         } catch (XPathExpressionException ex) {
@@ -366,7 +357,7 @@ final class OsgiMetadataUtil {
 
     private static Node queryNode(Document metadata, String xpathQuery) {
         try {
-            XPath xpath = XPATH_FACTORY.newXPath();
+            XPath xpath = XPathFactory.newInstance().newXPath();
             xpath.setNamespaceContext(NAMESPACE_CONTEXT);
             return (Node) xpath.evaluate(xpathQuery, metadata, 
XPathConstants.NODE);
         } catch (XPathExpressionException ex) {

Reply via email to