Skip to content

Commit da5003e

Browse files
committed
Fix CLI command does not exit (#7)
1 parent aca0655 commit da5003e

2 files changed

Lines changed: 24 additions & 14 deletions

File tree

  • cli/src/main/java/cz/speedy11/mcrpx/cli
  • common/src/main/java/cz/speedy11/mcrpx/common/util

cli/src/main/java/cz/speedy11/mcrpx/cli/Main.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.File;
3636
import java.io.IOException;
3737
import java.util.Arrays;
38+
import java.util.concurrent.ExecutionException;
3839

3940
/**
4041
* Main class of the CLI application.
@@ -66,6 +67,7 @@ public static void main(String[] args) {
6667
System.out.println(exception.getLocalizedMessage());
6768
}
6869

70+
6971
if ((options == null) || (options.has("?"))) {
7072
try {
7173
parser.printHelpOn(System.out);
@@ -93,16 +95,21 @@ public static void main(String[] args) {
9395
return;
9496
}
9597

96-
ZipUtil.extract(inputFile, outputDirectory, new ExtractTaskAdapter() {
97-
@Override
98-
public void onError(Exception exception) {
99-
exception.printStackTrace();
100-
}
10198

102-
@Override
103-
public void onMessage(String message) {
104-
System.out.println(message);
105-
}
106-
});
99+
try {
100+
ZipUtil.extract(inputFile, outputDirectory, new ExtractTaskAdapter() {
101+
@Override
102+
public void onError(Exception exception) {
103+
exception.printStackTrace();
104+
}
105+
106+
@Override
107+
public void onMessage(String message) {
108+
System.out.println(message);
109+
}
110+
}).get();
111+
} catch (InterruptedException | ExecutionException e) {
112+
throw new RuntimeException(e);
113+
}
107114
}
108115
}

common/src/main/java/cz/speedy11/mcrpx/common/util/ZipUtil.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828

2929
import java.io.*;
3030
import java.util.Enumeration;
31-
import java.util.concurrent.Executors;
32-
import java.util.concurrent.Future;
33-
import java.util.concurrent.ScheduledExecutorService;
31+
import java.util.concurrent.*;
3432
import java.util.jar.JarEntry;
3533
import java.util.jar.JarException;
3634
import java.util.jar.JarFile;
@@ -46,7 +44,12 @@
4644
*/
4745
public class ZipUtil {
4846

49-
private static final ScheduledExecutorService EXECUTOR = Executors.newSingleThreadScheduledExecutor();
47+
private static final ExecutorService EXECUTOR = Executors.newSingleThreadScheduledExecutor(runnable -> {
48+
Thread thread = new Thread(runnable, "ZipUtil-Executor");
49+
thread.setDaemon(true);
50+
return thread;
51+
});
52+
5053
private static final int BUFFER_SIZE = 4096;
5154

5255
private ZipUtil() {

0 commit comments

Comments
 (0)