From 35184c01f2a54a0e7c3af99e8853036150973c78 Mon Sep 17 00:00:00 2001 From: Googler Date: Sat, 21 Jan 2017 02:58:45 +0000 Subject: Description redacted. -- PiperOrigin-RevId: 145152574 MOS_MIGRATED_REVID=145152574 --- .../google/devtools/build/buildjar/BazelJavaBuilder.java | 2 +- .../buildjar/ReducedClasspathJavaLibraryBuilder.java | 2 +- .../devtools/build/buildjar/SimpleJavaLibraryBuilder.java | 6 ++++-- .../devtools/build/buildjar/javac/BlazeJavacMain.java | 14 ++++++++------ .../devtools/build/buildjar/javac/BlazeJavacResult.java | 15 ++++++++------- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BazelJavaBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BazelJavaBuilder.java index ade5424b63..0fb8456212 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BazelJavaBuilder.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BazelJavaBuilder.java @@ -92,7 +92,7 @@ public abstract class BazelJavaBuilder { err.write(d.getFormatted()); } err.write(result.output()); - return result.isOk() ? 0 : 1; + return result.javacResult().exitCode; } } catch (InvalidCommandLineException e) { err.println(CMDNAME + " threw exception: " + e.getMessage()); diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java index 9e2a6652f9..8bcf586f78 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java @@ -73,7 +73,7 @@ public class ReducedClasspathJavaLibraryBuilder extends SimpleJavaLibraryBuilder } private static boolean shouldFallBack(BlazeJavacResult result) { - if (result.isOk()) { + if (result.javacResult().isOK()) { return false; } for (FormattedDiagnostic diagnostic : result.diagnostics()) { diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java index eb03a9bae7..858c884b3e 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java @@ -176,7 +176,7 @@ public class SimpleJavaLibraryBuilder implements Closeable { BlazeJavacResult result = BlazeJavacResult.error(""); try { result = compileJavaLibrary(build); - if (result.isOk()) { + if (result.javacResult().isOK()) { buildJar(build); } if (!build.getProcessors().isEmpty()) { @@ -185,7 +185,9 @@ public class SimpleJavaLibraryBuilder implements Closeable { } } } finally { - build.getDependencyModule().emitDependencyInformation(build.getClassPath(), result.isOk()); + build + .getDependencyModule() + .emitDependencyInformation(build.getClassPath(), result.javacResult().isOK()); build.getProcessingModule().emitManifestProto(); } return result; 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 6666e08c24..f00f9f6953 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 @@ -25,9 +25,11 @@ import com.google.devtools.build.buildjar.javac.FormattedDiagnostic.Listener; import com.google.devtools.build.buildjar.javac.plugins.BlazeJavaCompilerPlugin; import com.sun.source.util.JavacTask; import com.sun.tools.javac.api.ClientCodeWrapper.Trusted; +import com.sun.tools.javac.api.JavacTaskImpl; import com.sun.tools.javac.api.JavacTool; import com.sun.tools.javac.file.JavacFileManager; import com.sun.tools.javac.main.JavaCompiler; +import com.sun.tools.javac.main.Main.Result; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.PropagatedException; import java.io.IOError; @@ -75,7 +77,7 @@ public class BlazeJavacMain { Context context = new Context(); setupBlazeJavaCompiler(arguments.plugins(), context); - boolean ok = false; + Result result = Result.ABNORMAL; StringWriter errOutput = new StringWriter(); // TODO(cushon): where is this used when a diagnostic listener is registered? Consider removing // it and handling exceptions directly in callers. @@ -101,16 +103,16 @@ public class BlazeJavacMain { setLocations(fileManager, arguments); try { try { - ok = task.call(); + result = ((JavacTaskImpl) task).doCall(); } catch (PropagatedException e) { throw e.getCause(); } } catch (Throwable t) { t.printStackTrace(errWriter); - ok = false; + result = Result.ABNORMAL; } finally { compiler = (BlazeJavaCompiler) JavaCompiler.instance(context); - if (ok) { + if (result.isOK()) { // There could be situations where we incorrectly skip Error Prone and the compilation // ends up succeeding, e.g., if there are errors that are fixed by subsequent round of // annotation processing. This check ensures that if there were any flow events at all, @@ -118,13 +120,13 @@ public class BlazeJavacMain { // or empty source files. if (compiler.skippedFlowEvents() > 0 && compiler.flowEvents() == 0) { errWriter.println("Expected at least one FLOW event"); - ok = false; + result = Result.ABNORMAL; } } } errWriter.flush(); return new BlazeJavacResult( - ok, filterDiagnostics(diagnostics.build()), errOutput.toString(), compiler); + result, filterDiagnostics(diagnostics.build()), errOutput.toString(), compiler); } private static final ImmutableSet IGNORED_DIAGNOSTIC_CODES = diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacResult.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacResult.java index 6f8e90aee8..61702ffa09 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacResult.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacResult.java @@ -16,36 +16,37 @@ package com.google.devtools.build.buildjar.javac; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; +import com.sun.tools.javac.main.Main.Result; /** The result of a single compilation performed by {@link BlazeJavacMain}. */ public class BlazeJavacResult { - private final boolean ok; + private final Result javacResult; private final ImmutableList diagnostics; private final String output; private final BlazeJavaCompiler compiler; public static BlazeJavacResult ok() { - return new BlazeJavacResult(true, ImmutableList.of(), "", null); + return new BlazeJavacResult(Result.OK, ImmutableList.of(), "", null); } public static BlazeJavacResult error(String message) { - return new BlazeJavacResult(false, ImmutableList.of(), message, null); + return new BlazeJavacResult(Result.ERROR, ImmutableList.of(), message, null); } public BlazeJavacResult( - boolean ok, + Result javacResult, ImmutableList diagnostics, String output, BlazeJavaCompiler compiler) { - this.ok = ok; + this.javacResult = javacResult; this.diagnostics = diagnostics; this.output = output; this.compiler = compiler; } - public boolean isOk() { - return ok; + public Result javacResult() { + return javacResult; } public ImmutableList diagnostics() { -- cgit v1.2.3