diff options
Diffstat (limited to 'src')
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(); + } } |