aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/buildjar
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-02-02 19:42:52 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-02 19:44:27 -0800
commit5dee3ea3141c14f23951c0d0e4913c666b419c3f (patch)
tree0e42d911ea2cafc02e5829bff0a706d8d3436ba6 /src/java_tools/buildjar
parentf972c87c515f4b819bb6e7baca8a64b56d79d5f1 (diff)
Don't suppress non-NOTE diagnostics for failed builds
To avoid hiding compiler.warn.sun.proprietary warnings when running with -Werror. Fixes bazelbuild/bazel#4564 PiperOrigin-RevId: 184367653
Diffstat (limited to 'src/java_tools/buildjar')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java25
1 files changed, 17 insertions, 8 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 dd2a14105d..20b8689392 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
@@ -43,6 +43,7 @@ import java.nio.file.Path;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
+import javax.tools.Diagnostic;
import javax.tools.StandardLocation;
/**
@@ -129,7 +130,7 @@ public class BlazeJavacMain {
}
errWriter.flush();
return new BlazeJavacResult(
- ok, filterDiagnostics(diagnostics.build()), errOutput.toString(), compiler);
+ ok, filterDiagnostics(ok, diagnostics.build()), errOutput.toString(), compiler);
}
private static final ImmutableSet<String> IGNORED_DIAGNOSTIC_CODES =
@@ -147,14 +148,22 @@ public class BlazeJavacMain {
"compiler.warn.sun.proprietary");
private static ImmutableList<FormattedDiagnostic> filterDiagnostics(
- ImmutableList<FormattedDiagnostic> diagnostics) {
- // TODO(cushon): toImmutableList
- ImmutableList.Builder<FormattedDiagnostic> result = ImmutableList.builder();
- diagnostics
+ boolean ok, ImmutableList<FormattedDiagnostic> diagnostics) {
+ return diagnostics
.stream()
- .filter(d -> !IGNORED_DIAGNOSTIC_CODES.contains(d.getCode()))
- .forEach(result::add);
- return result.build();
+ .filter(d -> shouldReportDiagnostic(ok, d))
+ .collect(toImmutableList());
+ }
+
+ private static boolean shouldReportDiagnostic(boolean ok, FormattedDiagnostic diagnostic) {
+ if (!IGNORED_DIAGNOSTIC_CODES.contains(diagnostic.getCode())) {
+ return true;
+ }
+ if (!ok && diagnostic.getKind() != Diagnostic.Kind.NOTE) {
+ // show compiler.warn.sun.proprietary in case we're running with -Werror
+ return true;
+ }
+ return false;
}
/** Processes Plugin-specific arguments and removes them from the args array. */