You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2022/07/28 09:12:00 UTC

svn commit: r1903075 - in /xmlbeans/trunk/src/main: java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java java9/module-info.class

Author: fanningpj
Date: Thu Jul 28 09:12:00 2022
New Revision: 1903075

URL: http://svn.apache.org/viewvc?rev=1903075&view=rev
Log:
use concurrent hash map for parser instances

Modified:
    xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java
    xmlbeans/trunk/src/main/java9/module-info.class

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java?rev=1903075&r1=1903074&r2=1903075&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Thu Jul 28 09:12:00 2022
@@ -23,6 +23,7 @@ import org.apache.xmlbeans.impl.xb.xmlco
 import javax.xml.namespace.QName;
 import java.io.File;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * An implementation of BindingConfig
@@ -70,16 +71,11 @@ public class BindingConfigImpl extends B
 
     }
 
-    private static final Map<JavaFilesClasspath, Parser> _parserMap = new HashMap<>();
+    private static final ConcurrentHashMap<JavaFilesClasspath, Parser> _parserMap = new ConcurrentHashMap<>();
 
     private static Parser parserInstance(File[] javaFiles, File[] classpath) {
-        JavaFilesClasspath jfc = new JavaFilesClasspath(javaFiles, classpath);
-        Parser parser = _parserMap.get(jfc);
-        if ( parser == null ) {
-            parser = new Parser(javaFiles, classpath);
-            _parserMap.put(jfc, parser);
-        }
-        return parser;
+        return _parserMap.computeIfAbsent(new JavaFilesClasspath(javaFiles, classpath), jfc ->
+                new Parser(jfc.javaFiles, jfc.classpath));
     }
 
     public static BindingConfig forConfigDocuments(Config[] configs, File[] javaFiles, File[] classpath) {

Modified: xmlbeans/trunk/src/main/java9/module-info.class
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java9/module-info.class?rev=1903075&r1=1903074&r2=1903075&view=diff
==============================================================================
Binary files - no diff available.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org