diff options
author | cushon <cushon@google.com> | 2017-05-30 21:13:04 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-05-31 09:19:42 +0200 |
commit | 3834dc87953638aa818257cad5e8692d97fc7532 (patch) | |
tree | a5b760f01d69837c4ddea872aa97f6498c99c32e /src | |
parent | a06205b7778a0e3c11fd0294ff7c5b43682ca45f (diff) |
Optionally skip fallback to javac-turbine
PiperOrigin-RevId: 157494773
Diffstat (limited to 'src')
-rw-r--r-- | src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/Turbine.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/Turbine.java b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/Turbine.java index 845a5eb124..b76f18982a 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/Turbine.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/Turbine.java @@ -14,6 +14,7 @@ package com.google.devtools.build.java.turbine; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.java.turbine.javac.JavacTurbine; import com.google.devtools.build.java.turbine.javac.JavacTurbine.Result; import com.google.turbine.diag.TurbineError; @@ -21,7 +22,6 @@ import com.google.turbine.main.Main; import com.google.turbine.options.TurbineOptions; import com.google.turbine.options.TurbineOptionsParser; import java.io.IOException; -import java.util.Arrays; /** * A turbine entry point that falls back to javac-turbine for failures, and for compilations that @@ -30,17 +30,20 @@ import java.util.Arrays; public class Turbine { public static void main(String[] args) throws Exception { - System.exit(new Turbine("An exception has occurred in turbine.").compile(args)); + System.exit(new Turbine("An exception has occurred in turbine.", "").compile(args)); } private final String bugMessage; - public Turbine(String bugMessage) { + private final String unhelpfulMessage; + + public Turbine(String bugMessage, String unhelpfulMessage) { this.bugMessage = bugMessage; + this.unhelpfulMessage = unhelpfulMessage; } public int compile(String[] args) throws IOException { - return compile(TurbineOptionsParser.parse(Arrays.asList(args))); + return compile(TurbineOptionsParser.parse(ImmutableList.copyOf(args))); } public int compile(TurbineOptions options) throws IOException { @@ -63,6 +66,17 @@ public class Turbine { } catch (Throwable t) { turbineCrash = t; } + if (!options.javacFallback()) { + if (turbineCrash instanceof TurbineError) { + System.err.println(); + System.err.println(turbineCrash.getMessage()); + System.err.println(unhelpfulMessage); + } else if (turbineCrash != null) { + System.err.println(bugMessage); + turbineCrash.printStackTrace(); + } + System.exit(1); + } Result result = JavacTurbine.compile(options); if (result == Result.OK_WITH_REDUCED_CLASSPATH && turbineCrash != null) { System.err.println(bugMessage); |