aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2017-01-13 18:29:07 +0000
committerGravatar Vladimir Moskva <vladmos@google.com>2017-01-16 13:44:42 +0000
commit178a7a3b328e85bd48598276a793c9a3c08adc3a (patch)
treebb405cef661e7e8b7d5413ac135a802e26727744 /src
parent0afc044a717763ed3123e0dbc5296c4cb2f5d443 (diff)
Handle top-level exceptions in javac
javac's main catches all exceptions and returns an exit code, the API does not. This restores error handling that was lost when we migrated to the API in commit 3c5e55ff8e058b624ce26e803ff00434c70d4b91. -- PiperOrigin-RevId: 144457176 MOS_MIGRATED_REVID=144457176
Diffstat (limited to 'src')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java51
1 files changed, 26 insertions, 25 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
index 77c8495290..a4b5dc9f13 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
@@ -120,33 +120,34 @@ public class BlazeJavacMain {
setupBlazeJavaCompiler(context);
Result result = Result.ABNORMAL;
+ JavacTool tool = JavacTool.create();
+ JavacTaskImpl task =
+ (JavacTaskImpl)
+ tool.getTask(
+ errOutput,
+ fileManager,
+ diagnosticListener,
+ javacArguments,
+ ImmutableList.<String>of() /*classes*/,
+ fileManager.getJavaFileObjectsFromPaths(arguments.sourceFiles()),
+ context);
+ if (arguments.processors() != null) {
+ task.setProcessors(arguments.processors());
+ }
+ fileManager.setContext(context);
+ setLocations(fileManager, arguments);
try {
- JavacTool tool = JavacTool.create();
- JavacTaskImpl task =
- (JavacTaskImpl)
- tool.getTask(
- errOutput,
- fileManager,
- diagnosticListener,
- javacArguments,
- ImmutableList.<String>of() /*classes*/,
- fileManager.getJavaFileObjectsFromPaths(arguments.sourceFiles()),
- context);
- if (arguments.processors() != null) {
- task.setProcessors(arguments.processors());
- }
- fileManager.setContext(context);
- setLocations(fileManager, arguments);
- result = task.doCall();
- } catch (PropagatedException e) {
- if (e.getCause() instanceof PluginException) {
- PluginException pluginException = (PluginException) e.getCause();
- errOutput.println(pluginException.getMessage());
- result = pluginException.getResult();
- } else {
- e.printStackTrace(errOutput);
- result = Result.ABNORMAL;
+ try {
+ result = task.doCall();
+ } catch (PropagatedException e) {
+ throw e.getCause();
}
+ } catch (PluginException e) {
+ errOutput.println(e.getMessage());
+ result = e.getResult();
+ } catch (Throwable t) {
+ t.printStackTrace(errOutput);
+ result = Result.ABNORMAL;
} finally {
if (result.isOK()) {
verifyNotNull(compiler);