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.