Deprecate LoggingThreadUncaughtExceptionHandler for removal 98/85598/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 4 Nov 2019 10:46:40 +0000 (11:46 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 5 Nov 2019 16:21:36 +0000 (17:21 +0100)
This class creates leaks SLF4J API as an API dependency, which is
rather wrong. Deprecate it for removal.

Change-Id: I29c43855742928782851a45e9b76b9ea4d74aad3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 30b71099adfe2de0e671e18481cdd4c2dfae118e)

common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/LoggingThreadUncaughtExceptionHandler.java
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/ThreadFactoryProvider.java

index eec88fa2654a09ca619f9000635a4c9109f2e8d9..5ba3cc91ef557935ac72efe073158c6688e1ab3c 100644 (file)
@@ -14,8 +14,10 @@ import org.slf4j.Logger;
 /**
  * Thread's UncaughtExceptionHandler which logs to slf4j.
  *
+ * @deprecated This class forms a hard dependency on SLF4J API and is therefore deprecated for removal.
  * @author Michael Vorburger.ch
  */
+@Deprecated
 @SuppressWarnings({"checkstyle:LoggerVariableName", "LoggerVariableModifiers"})
 public final class LoggingThreadUncaughtExceptionHandler implements UncaughtExceptionHandler {
 
index 077e8272540cd7d008524cd291ced159d94016e7..c717449deef19faef81f0b42cb41fab82ab306d6 100644 (file)
@@ -57,10 +57,11 @@ public abstract class ThreadFactoryProvider {
     }
 
     public ThreadFactory get() {
-        ThreadFactoryBuilder guavaBuilder = new ThreadFactoryBuilder();
-        guavaBuilder.setNameFormat(namePrefix() + "-%d");
-        guavaBuilder.setUncaughtExceptionHandler(LoggingThreadUncaughtExceptionHandler.toLogger(logger()));
-        guavaBuilder.setDaemon(daemon());
+        ThreadFactoryBuilder guavaBuilder = new ThreadFactoryBuilder()
+                .setNameFormat(namePrefix() + "-%d")
+                .setUncaughtExceptionHandler((thread, exception)
+                    -> logger().error("Thread terminated due to uncaught exception: {}", thread.getName(), exception))
+                .setDaemon(daemon());
         priority().ifPresent(guavaBuilder::setPriority);
         logger().info("ThreadFactory created: {}", namePrefix());
         return guavaBuilder.build();