Add support for making `sunapi` an error using `-Werror:`

PiperOrigin-RevId: 627829134
Change-Id: I7615e927fd95ed7dca62e2f1f734c8b19ac00448
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/FormattedDiagnostic.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/FormattedDiagnostic.java
index ad8d9ac..8f2f4b1 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/FormattedDiagnostic.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/FormattedDiagnostic.java
@@ -26,6 +26,7 @@
 import com.sun.tools.javac.util.Log;
 import java.util.Locale;
 import java.util.Optional;
+import javax.annotation.Nullable;
 import javax.tools.Diagnostic;
 import javax.tools.DiagnosticListener;
 import javax.tools.JavaFileObject;
@@ -160,19 +161,31 @@
       if (werrorCustomOption.isEmpty()) {
         return false;
       }
-      LintCategory lintCategory = diagnostic.getLintCategory();
+      String lintCategory = lintCategory(diagnostic);
       if (lintCategory == null) {
         return false;
       }
       switch (diagnostic.getKind()) {
         case WARNING:
         case MANDATORY_WARNING:
-          return werrorCustomOption.get().isEnabled(lintCategory.option);
+          return werrorCustomOption.get().isEnabled(lintCategory);
         default:
           return false;
       }
     }
 
+    @Nullable
+    private static String lintCategory(JCDiagnostic diagnostic) {
+      if (diagnostic.getCode().equals("compiler.warn.sun.proprietary")) {
+        return "sunapi";
+      }
+      LintCategory lintCategory = diagnostic.getLintCategory();
+      if (lintCategory == null) {
+        return null;
+      }
+      return lintCategory.option;
+    }
+
     ImmutableList<FormattedDiagnostic> build() {
       return diagnostics.build();
     }