You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2018/06/13 15:00:33 UTC

[sling-org-apache-sling-commons-threads] 01/02: SLING-7526 - NPE in DefaultThreadPool$LoggingThreadLocalChangeListener.changed

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

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

commit 830c606b753def2b78f2ac9f9f334e3182068455
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Wed Jun 13 17:56:35 2018 +0300

    SLING-7526 - NPE in DefaultThreadPool$LoggingThreadLocalChangeListener.changed
    
    Ensure that we tolerate null values in the
    LoggingThreadLocalChangeListener
---
 .../apache/sling/commons/threads/impl/DefaultThreadPool.java   |  3 ++-
 .../sling/commons/threads/impl/ThreadLocalChangeListener.java  | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
index 99cdec5..604092a 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
@@ -169,7 +169,8 @@ public class DefaultThreadPool
     private static class LoggingThreadLocalChangeListener implements ThreadLocalChangeListener {
         @Override
         public void changed(Mode mode, Thread thread, ThreadLocal<?> threadLocal, Object value) {
-            LOGGER.debug("Thread '{}' {} ThreadLocal {} with value {}", thread, mode, threadLocal.getClass(), value);
+            LOGGER.debug("Thread '{}' {} ThreadLocal {} with value {}", thread, mode, 
+                    threadLocal != null ? threadLocal.getClass() : "<null>", value);
         }
     }
 
diff --git a/src/main/java/org/apache/sling/commons/threads/impl/ThreadLocalChangeListener.java b/src/main/java/org/apache/sling/commons/threads/impl/ThreadLocalChangeListener.java
index 548ecb4..27954f2 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/ThreadLocalChangeListener.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/ThreadLocalChangeListener.java
@@ -28,6 +28,16 @@ public interface ThreadLocalChangeListener {
 
     Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+    /**
+     * Invoked when the cleaner detects that a thread-local value was added of removed 
+     * after an execution has completed
+     * 
+     * @param the mode
+     * @param the thread
+     * @param the thread local, possibly null
+     * @param the value, possibly null
+     */
+    
     void changed(Mode mode, Thread thread, ThreadLocal<?> threadLocal, Object value);
 
     enum Mode {

-- 
To stop receiving notification emails like this one, please contact
rombert@apache.org.