You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rz...@apache.org on 2023/01/13 09:12:20 UTC

[tomee] 01/02: TOMEE-4120 - Switch to computeIfAbsent

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

rzo1 pushed a commit to branch tomee-8.x
in repository https://gitbox.apache.org/repos/asf/tomee.git

commit df3482f14526a6c09c46ecf986745d4c0ad95c92
Author: Richard Zowalla <ri...@hs-heilbronn.de>
AuthorDate: Fri Jan 13 10:10:24 2023 +0100

    TOMEE-4120 - Switch to computeIfAbsent
---
 .../org/apache/openejb/client/EJBInvocationHandler.java    | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java
index 56c0566844..c9f523a95a 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java
@@ -208,13 +208,9 @@ public abstract class EJBInvocationHandler implements InvocationHandler, Seriali
     	l.lock();
 
     	try {
-        	// this map lookup must be synchronized even though it is a ConcurrentHashMap to avoid race condition with the clean up below
-    		final Set<WeakReference<EJBInvocationHandler>> set = liveHandleRegistry.get(key);
-    		if (set == null) {
-    			set = new HashSet<WeakReference<EJBInvocationHandler>>();
-    			liveHandleRegistry.put(key, set);
-    		}
-    		set.add(new WeakReference<EJBInvocationHandler>(handler));
+        	// this map lookup must be synchronized even though it is a ConcurrentHashMap to avoid race condition with the cleanup below
+            final Set<WeakReference<EJBInvocationHandler>> set = liveHandleRegistry.computeIfAbsent(key, k -> new HashSet<>());
+            set.add(new WeakReference<>(handler));
 
     		// loop through and remove old references that have been garbage collected
     		for (Iterator<Map.Entry<Object,Set<WeakReference<EJBInvocationHandler>>>> i = liveHandleRegistry.entrySet().iterator(); i.hasNext(); ) {
@@ -236,7 +232,7 @@ public abstract class EJBInvocationHandler implements InvocationHandler, Seriali
     }
 
     /**
-     * Renamed method so it shows up with a much more understandable purpose as it
+     * Renamed method, so it shows up with a much more understandable purpose as it
      * will be the top element in the stacktrace
      *
      * @param e      Throwable
@@ -251,7 +247,7 @@ public abstract class EJBInvocationHandler implements InvocationHandler, Seriali
                 return new TransactionRolledbackLocalException(e.getMessage()).initCause(getCause(e));
             }
 
-            /**
+            /*
              * If a client attempts to invoke a method on a removed bean's business interface,
              * we must throw a javax.ejb.NoSuchEJBException. If the business interface is a
              * remote business interface that extends java.rmi.Remote, the