From 91223aa642bd64f973e5b147a7e7d93a2b454fe5 Mon Sep 17 00:00:00 2001 From: Kyle J Stiemann Date: Fri, 3 Feb 2023 16:58:42 -0800 Subject: [PATCH] Fix #846 Formatter leaks threads and memory I've signed the CLA. Fixes #847 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/google-java-format/pull/847 from stiemannkj1:fix-846-mem-thread-leak 0ca1e9bf9c8cf877509ac39cc50707d0ade7d71c PiperOrigin-RevId: 507026969 --- .../main/java/com/google/googlejavaformat/java/Main.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/src/main/java/com/google/googlejavaformat/java/Main.java b/core/src/main/java/com/google/googlejavaformat/java/Main.java index 11c019234..628c8bb24 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/Main.java +++ b/core/src/main/java/com/google/googlejavaformat/java/Main.java @@ -18,6 +18,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.io.ByteStreams; +import com.google.common.util.concurrent.MoreExecutors; import com.google.googlejavaformat.FormatterDiagnostic; import com.google.googlejavaformat.java.JavaFormatterOptions.Style; import java.io.IOError; @@ -28,6 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.time.Duration; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; @@ -187,6 +189,10 @@ private int formatFiles(CommandLineOptions parameters, JavaFormatterOptions opti outWriter.write(formatted); } } + if (!MoreExecutors.shutdownAndAwaitTermination(executorService, Duration.ofSeconds(5))) { + errWriter.println("Failed to shut down ExecutorService"); + allOk = false; + } return allOk ? 0 : 1; }