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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jxpath.git


The following commit(s) were added to refs/heads/master by this push:
     new 613c4e2  Use modern Map API
613c4e2 is described below

commit 613c4e2abda6b0525d15b9569065bbbca9fc6796
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Jul 8 08:41:02 2023 -0400

    Use modern Map API
---
 .../java/org/apache/commons/jxpath/util/ValueUtils.java | 17 +++++------------
 .../apache/commons/jxpath/xml/DocumentContainer.java    | 12 ++++--------
 2 files changed, 9 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/commons/jxpath/util/ValueUtils.java 
b/src/main/java/org/apache/commons/jxpath/util/ValueUtils.java
index ecee382..cdd0419 100644
--- a/src/main/java/org/apache/commons/jxpath/util/ValueUtils.java
+++ b/src/main/java/org/apache/commons/jxpath/util/ValueUtils.java
@@ -522,21 +522,14 @@ public class ValueUtils {
      * @return DynamicPropertyHandler
      */
     public static DynamicPropertyHandler getDynamicPropertyHandler(final Class 
clazz) {
-        DynamicPropertyHandler handler =
-            (DynamicPropertyHandler) dynamicPropertyHandlerMap.get(clazz);
-        if (handler == null) {
+        return (DynamicPropertyHandler) 
dynamicPropertyHandlerMap.computeIfAbsent(clazz, k -> {
             try {
-                handler = (DynamicPropertyHandler) clazz.newInstance();
-            }
+                return (DynamicPropertyHandler) clazz.newInstance();
+            } 
             catch (final Exception ex) {
-                throw new JXPathException(
-                    "Cannot allocate dynamic property handler of class "
-                        + clazz.getName(),
-                    ex);
+                throw new JXPathException("Cannot allocate dynamic property 
handler of class " + clazz.getName(), ex);
             }
-            dynamicPropertyHandlerMap.put(clazz, handler);
-        }
-        return handler;
+        });
     }
 
     // -------------------------------------------------------- Private Methods
diff --git a/src/main/java/org/apache/commons/jxpath/xml/DocumentContainer.java 
b/src/main/java/org/apache/commons/jxpath/xml/DocumentContainer.java
index e87b715..f7f1599 100644
--- a/src/main/java/org/apache/commons/jxpath/xml/DocumentContainer.java
+++ b/src/main/java/org/apache/commons/jxpath/xml/DocumentContainer.java
@@ -172,22 +172,18 @@ public class DocumentContainer extends XMLParser2 
implements Container {
      * @return XMLParser
      */
     private static XMLParser getParser(final String model) {
-        XMLParser parser = (XMLParser) parsers.get(model);
-        if (parser == null) {
+        return (XMLParser) parsers.computeIfAbsent(model, k -> {
             final String className = (String) parserClasses.get(model);
             if (className == null) {
                 throw new JXPathException("Unsupported XML model: " + model);
             }
             try {
                 final Class clazz = ClassLoaderUtil.getClass(className, true);
-                parser = (XMLParser) clazz.newInstance();
+                return (XMLParser) clazz.newInstance();
             }
             catch (final Exception ex) {
-                throw new JXPathException(
-                    "Cannot allocate XMLParser: " + className, ex);
+                throw new JXPathException("Cannot allocate XMLParser: " + 
className, ex);
             }
-            parsers.put(model, parser);
-        }
-        return parser;
+        });
     }
 }

Reply via email to