aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/VanillaJavaBuilder.java6
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java40
2 files changed, 46 insertions, 0 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/VanillaJavaBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/VanillaJavaBuilder.java
index d30ee98d62..e07e58ea50 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/VanillaJavaBuilder.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/VanillaJavaBuilder.java
@@ -195,6 +195,12 @@ public class VanillaJavaBuilder implements Closeable {
}
for (Diagnostic<? extends JavaFileObject> diagnostic : diagnosticCollector.getDiagnostics()) {
+ String code = diagnostic.getCode();
+ if (code.startsWith("compiler.note.deprecated")
+ || code.startsWith("compiler.note.unchecked")
+ || code.equals("compiler.warn.sun.proprietary")) {
+ continue;
+ }
StringBuilder message = new StringBuilder();
if (diagnostic.getSource() != null) {
message.append(diagnostic.getSource().getName());
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java
index 233bc1669b..784d0ba44a 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java
@@ -224,4 +224,44 @@ public class VanillaJavaBuilderTest {
assertThat(outputEntries.keySet())
.containsExactly("META-INF/", "META-INF/MANIFEST.MF", "A.class", "B.class");
}
+
+ // suppress unpopular deferred diagnostic notes for sunapi, deprecation, and unchecked
+ @Test
+ public void testDeferredDiagnostics() throws Exception {
+ Path b = temporaryFolder.newFile("B.java").toPath();
+ Path a = temporaryFolder.newFile("A.java").toPath();
+ Path output = temporaryFolder.newFile("out.jar").toPath();
+ Files.write(
+ b,
+ ImmutableList.of(
+ "@Deprecated", //
+ "class B {}"),
+ UTF_8);
+ Files.write(
+ a,
+ ImmutableList.of(
+ "import java.util.*;", //
+ "public class A {",
+ " sun.misc.Unsafe theUnsafe;",
+ " B b;",
+ " List l = new ArrayList<>();",
+ "}"),
+ UTF_8);
+
+ VanillaJavaBuilderResult result =
+ run(
+ ImmutableList.of(
+ "--sources",
+ a.toString(),
+ b.toString(),
+ "--output",
+ output.toString(),
+ "--bootclasspath",
+ Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(),
+ "--classdir",
+ temporaryFolder.newFolder().toString()));
+
+ assertThat(result.output()).isEmpty();
+ assertThat(result.ok()).isTrue();
+ }
}