diff --git a/src/main/java/com/sheepit/client/UnzipUtils.java b/src/main/java/com/sheepit/client/UnzipUtils.java index 69a5b51..1a4b94b 100644 --- a/src/main/java/com/sheepit/client/UnzipUtils.java +++ b/src/main/java/com/sheepit/client/UnzipUtils.java @@ -245,6 +245,17 @@ public class UnzipUtils { private static void writeWait(WriteQueue queue, ExecutorService executor) throws InterruptedException { queue.doneAdding = true; executor.shutdown(); + + try { + if (executor.awaitTermination(60, TimeUnit.MINUTES) == false) { + executor.shutdownNow(); + } + } + catch (InterruptedException e) { + executor.shutdownNow(); + Thread.currentThread().interrupt(); + } + //Encourage the JVM to release memory used while decompressing GC_RUNNER.execute(System::gc); }