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-lang.git

commit 8f73bd15d485e5b9347abe1b2ac71d2d956f16a5
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Mar 16 08:32:58 2024 -0400

    Use Java 8 API to manage thread local
---
 .../org/apache/commons/lang3/builder/ToStringStyle.java | 17 +++++------------
 .../java/org/apache/commons/lang3/AbstractLangTest.java |  4 ++--
 2 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java 
b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
index a722f0a6f..0ab64efe3 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
@@ -687,7 +687,7 @@ public abstract class ToStringStyle implements Serializable 
{
      * A registry of objects used by {@code reflectionToString} methods
      * to detect cyclical object references and avoid infinite loops.
      */
-    private static final ThreadLocal<WeakHashMap<Object, Object>> REGISTRY = 
new ThreadLocal<>();
+    private static final ThreadLocal<WeakHashMap<Object, Object>> REGISTRY = 
ThreadLocal.withInitial(WeakHashMap::new);
     /*
      * Note that objects of this class are generally shared between threads, so
      * an instance variable would not be suitable here.
@@ -718,8 +718,7 @@ public abstract class ToStringStyle implements Serializable 
{
      *             object.
      */
     static boolean isRegistered(final Object value) {
-        final Map<Object, Object> m = getRegistry();
-        return m != null && m.containsKey(value);
+        return getRegistry().containsKey(value);
     }
 
     /**
@@ -731,10 +730,6 @@ public abstract class ToStringStyle implements 
Serializable {
      */
     static void register(final Object value) {
         if (value != null) {
-            final Map<Object, Object> m = getRegistry();
-            if (m == null) {
-                REGISTRY.set(new WeakHashMap<>());
-            }
             getRegistry().put(value, null);
         }
     }
@@ -752,11 +747,9 @@ public abstract class ToStringStyle implements 
Serializable {
     static void unregister(final Object value) {
         if (value != null) {
             final Map<Object, Object> m = getRegistry();
-            if (m != null) {
-                m.remove(value);
-                if (m.isEmpty()) {
-                    REGISTRY.remove();
-                }
+            m.remove(value);
+            if (m.isEmpty()) {
+                REGISTRY.remove();
             }
         }
     }
diff --git a/src/test/java/org/apache/commons/lang3/AbstractLangTest.java 
b/src/test/java/org/apache/commons/lang3/AbstractLangTest.java
index 9e3d42233..ca9ff1b49 100644
--- a/src/test/java/org/apache/commons/lang3/AbstractLangTest.java
+++ b/src/test/java/org/apache/commons/lang3/AbstractLangTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.commons.lang3;
 
-import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.junit.jupiter.api.AfterEach;
@@ -31,7 +31,7 @@ public class AbstractLangTest {
      */
     @AfterEach
     public void after() {
-        assertNull(ToStringStyle.getRegistry(), "Expected null, actual: " + 
ToStringStyle.getRegistry());
+        assertTrue(ToStringStyle.getRegistry().isEmpty(), "Expected null, 
actual: " + ToStringStyle.getRegistry());
     }
 
 }

Reply via email to