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