From 9b47e9fb0d86459b1db09757d5b10a2ce31e8716 Mon Sep 17 00:00:00 2001
From: Greg DiCristofaro <gregd@basistech.com>
Date: Tue, 1 Feb 2022 15:09:03 -0500
Subject: [PATCH] updates for thread pool naming

---
 .../uiutils/SwingWorkerSequentialExecutor.java    |  3 ++-
 .../autopsy/imagewriter/ImageWriter.java          |  2 +-
 .../ImportCentralRepoDbProgressDialog.java        | 15 ++++++---------
 .../gui/drawableviews/DrawableUIBase.java         |  3 ++-
 .../imagegallery/gui/navpanel/GroupTreeItem.java  |  3 ++-
 5 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/Core/src/org/sleuthkit/autopsy/datasourcesummary/uiutils/SwingWorkerSequentialExecutor.java b/Core/src/org/sleuthkit/autopsy/datasourcesummary/uiutils/SwingWorkerSequentialExecutor.java
index 37c46df31c..b0a4ea679f 100644
--- a/Core/src/org/sleuthkit/autopsy/datasourcesummary/uiutils/SwingWorkerSequentialExecutor.java
+++ b/Core/src/org/sleuthkit/autopsy/datasourcesummary/uiutils/SwingWorkerSequentialExecutor.java
@@ -18,6 +18,7 @@
  */
 package org.sleuthkit.autopsy.datasourcesummary.uiutils;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -36,7 +37,7 @@
  */
 public class SwingWorkerSequentialExecutor {
 
-    private final ExecutorService executorService = Executors.newFixedThreadPool(1);
+    private final ExecutorService executorService = Executors.newFixedThreadPool(1, new ThreadFactoryBuilder().setNameFormat("SwingWorkerSequentialExecutor-%d").build());
     private List<? extends SwingWorker<?, ?>> workers = Collections.emptyList();
     private List<Future<?>> futures = Collections.emptyList();
 
diff --git a/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java b/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
index 7a75e13517..9a07b9fd7c 100644
--- a/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
+++ b/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
@@ -144,7 +144,7 @@ public void propertyChange(PropertyChangeEvent evt) {
     })
     private void startFinishImage(String dataSourceName) {
 
-        ExecutorService executor = Executors.newSingleThreadExecutor();
+        ExecutorService executor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("ImageWriter-startFinishImage-%d").build());
         synchronized (currentTasksLock) {
             if (isCancelled) {
                 return;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/ImportCentralRepoDbProgressDialog.java b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/ImportCentralRepoDbProgressDialog.java
index d868b39189..0b685977c5 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/ImportCentralRepoDbProgressDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/ImportCentralRepoDbProgressDialog.java
@@ -291,16 +291,13 @@ private void deleteIncompleteSet() {
             if (referenceSetID.get() >= 0) {
 
                 // This can be slow on large reference sets
-                Executors.newSingleThreadExecutor().execute(new Runnable() {
-                    @Override
-                    public void run() {
-                        try {
-                            CentralRepository.getInstance().deleteReferenceSet(referenceSetID.get());
-                        } catch (CentralRepoException ex2) {
-                            Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE, "Error deleting incomplete hash set from central repository", ex2);
-                        }
+                new Thread(() -> {
+                    try {
+                        CentralRepository.getInstance().deleteReferenceSet(referenceSetID.get());
+                    } catch (CentralRepoException ex2) {
+                        Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE, "Error deleting incomplete hash set from central repository", ex2);
                     }
-                });
+                }).start();
             }
         }
 
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java
index 6f0b1d1c2a..e2fde8d03a 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java
@@ -18,6 +18,7 @@
  */
 package org.sleuthkit.autopsy.imagegallery.gui.drawableviews;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.util.Objects;
 import static java.util.Objects.nonNull;
 import java.util.Optional;
@@ -55,7 +56,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView
 
     /** The use of SingleThreadExecutor means we can only load a single image at
      * a time */
-    static final Executor exec = Executors.newSingleThreadExecutor();
+    static final Executor exec = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("DrawableUIBase-%d").build());
 
     @FXML
     BorderPane imageBorder;
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeItem.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeItem.java
index 234e834149..ee82989908 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeItem.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeItem.java
@@ -18,6 +18,7 @@
  */
 package org.sleuthkit.autopsy.imagegallery.gui.navpanel;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
@@ -39,7 +40,7 @@
  */
 class GroupTreeItem extends TreeItem<GroupTreeNode> {
 
-    static final Executor treeInsertTread = Executors.newSingleThreadExecutor();
+    static final Executor treeInsertTread = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("GroupTreeItem-%d").build());
 
     GroupTreeItem getTreeItemForGroup(DrawableGroup grouping) {
         if (Objects.equals(getValue().getGroup(), grouping)) {
-- 
GitLab