From aa92e5a9995704187fe063cdcc6330ed0fec0100 Mon Sep 17 00:00:00 2001 From: argius Date: Mon, 1 Dec 2014 22:08:45 +0900 Subject: [PATCH] use static AnyAction.doPallel instead of using DaemonThreadFactory.execute directly --- src/net/argius/stew/ui/window/AnyAction.java | 13 +++++++++---- src/net/argius/stew/ui/window/DatabaseInfoTree.java | 2 +- src/net/argius/stew/ui/window/ResultSetTableModel.java | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/net/argius/stew/ui/window/AnyAction.java b/src/net/argius/stew/ui/window/AnyAction.java index 01a4ef6..a08b52e 100644 --- a/src/net/argius/stew/ui/window/AnyAction.java +++ b/src/net/argius/stew/ui/window/AnyAction.java @@ -3,16 +3,14 @@ package net.argius.stew.ui.window; import static java.awt.event.KeyEvent.VK_Y; import static java.awt.event.KeyEvent.VK_Z; import static javax.swing.KeyStroke.getKeyStroke; - import java.awt.*; import java.awt.event.*; import java.lang.reflect.*; import java.util.*; - +import java.util.concurrent.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.undo.*; - import net.argius.stew.*; /** @@ -20,6 +18,9 @@ import net.argius.stew.*; */ final class AnyAction extends AbstractAction implements Runnable { + /** Thread Pool using Daemon Thread */ + private static final ExecutorService threadPool = Executors.newCachedThreadPool(DaemonThreadFactory.getInstance()); + /** AnyActionListener, JComponent, or JTextComponent */ private Object o; @@ -66,7 +67,11 @@ final class AnyAction extends AbstractAction implements Runnable { void doParallel(String methodName, final Object... args) { final String label = "AnyAction#doParallel"; - DaemonThreadFactory.execute(new Task(label, o, resolveMethod(methodName), args)); + doParallel(new Task(label, o, resolveMethod(methodName), args)); + } + + static void doParallel(Runnable runnable) { + threadPool.execute(runnable); } private static final class Task implements Runnable { diff --git a/src/net/argius/stew/ui/window/DatabaseInfoTree.java b/src/net/argius/stew/ui/window/DatabaseInfoTree.java index 578f0b3..be783f0 100644 --- a/src/net/argius/stew/ui/window/DatabaseInfoTree.java +++ b/src/net/argius/stew/ui/window/DatabaseInfoTree.java @@ -616,7 +616,7 @@ final class DatabaseInfoTree extends JTree implements AnyActionListener, TextSea invokeLater(new Task2()); } } - DaemonThreadFactory.execute(new NodeExpansionTask()); + AnyAction.doParallel(new NodeExpansionTask()); } /** diff --git a/src/net/argius/stew/ui/window/ResultSetTableModel.java b/src/net/argius/stew/ui/window/ResultSetTableModel.java index 5776814..ff83524 100644 --- a/src/net/argius/stew/ui/window/ResultSetTableModel.java +++ b/src/net/argius/stew/ui/window/ResultSetTableModel.java @@ -408,7 +408,7 @@ final class ResultSetTableModel extends DefaultTableModel { latch.countDown(); } } - DaemonThreadFactory.execute(new SqlTask()); + AnyAction.doParallel(new SqlTask()); try { // waits for a task to stop latch.await(3L, TimeUnit.SECONDS); @@ -429,7 +429,7 @@ final class ResultSetTableModel extends DefaultTableModel { } } } - DaemonThreadFactory.execute(new SqlTaskErrorHandler()); + AnyAction.doParallel(new SqlTaskErrorHandler()); } else if (!errors.isEmpty()) { if (log.isDebugEnabled()) { for (final Exception ex : errors) { -- 2.11.0