ARTEMIS-2527 Stop executors on print-data

This commit is contained in:
Clebert Suconic 2019-10-23 15:57:49 -04:00
parent 4f3df1f1e4
commit d7dc8b8de8
1 changed files with 12 additions and 8 deletions

View File

@ -175,16 +175,17 @@ public class PrintData extends DBOption {
}
private static void printPages(File pageDirectory, DescribeJournal describeJournal, PrintStream out, boolean safe) {
try {
ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1, ActiveMQThreadFactory.defaultThreadFactory());
final ExecutorService executor = Executors.newFixedThreadPool(10, ActiveMQThreadFactory.defaultThreadFactory());
ActiveMQThreadFactory daemonFactory = new ActiveMQThreadFactory("cli", true, PrintData.class.getClassLoader());
final ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1, daemonFactory);
final ExecutorService executor = Executors.newFixedThreadPool(10, daemonFactory);
ExecutorFactory execfactory = new ExecutorFactory() {
@Override
public ArtemisExecutor getExecutor() {
return ArtemisExecutor.delegate(executor);
}
};
try {
final StorageManager sm = new NullStorageManager();
PagingStoreFactory pageStoreFactory = new PagingStoreFactoryNIO(sm, pageDirectory, 1000L, scheduled, execfactory, false, null);
HierarchicalRepository<AddressSettings> addressSettingsRepository = new HierarchicalObjectRepository<>();
@ -194,6 +195,9 @@ public class PrintData extends DBOption {
printPages(describeJournal, sm, manager, out, safe);
} catch (Exception e) {
e.printStackTrace();
} finally {
executor.shutdownNow();
scheduled.shutdownNow();
}
}