Forward desugar worker errors into the WorkResponse and prevent bringing desugar workers down in the event of a crash.
Addresses kmb@'s post-submit comments in https://github.com/bazelbuild/bazel/commit/82df64dee36337c9aba78dce3d7ce8c6cf4ea30f
RELNOTES: None
PiperOrigin-RevId: 252109687
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
index e83a6ca..a51aff6 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java
@@ -983,7 +983,7 @@
if (options.persistentWorker) {
runPersistentWorker(dumpDirectory);
} else {
- processRequest(options, dumpDirectory);
+ System.exit(processRequest(options, dumpDirectory));
}
}
@@ -1000,8 +1000,17 @@
DesugarOptions options = parseCommandLineOptions(argList);
- int exitCode = processRequest(options, dumpDirectory);
- WorkResponse.newBuilder().setExitCode(exitCode).build().writeDelimitedTo(System.out);
+ try {
+ processRequest(options, dumpDirectory);
+ WorkResponse.newBuilder().setExitCode(0).build().writeDelimitedTo(System.out);
+ } catch (Exception e) {
+ e.printStackTrace();
+ WorkResponse.newBuilder()
+ .setExitCode(1)
+ .setOutput(e.getMessage())
+ .build()
+ .writeDelimitedTo(System.out);
+ }
System.out.flush();
}
}