Clean up obsolete logic related to bundled annotation processors PiperOrigin-RevId: 605684312 Change-Id: I3fad36c5079e192ef5779949a61de90ef9d5af7c
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 8fb0683..6e76c74 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
@@ -418,10 +418,14 @@ } /** - * When Bazel invokes JavaBuilder, it puts javac.jar on the bootstrap class path and - * JavaBuilder_deploy.jar on the user class path. We need Error Prone to be available on the - * annotation processor path, but we want to mask out any other classes to minimize class version - * skew. + * Ensure that classes that appear in the API between JavaBuilder and plugins are consistently + * loaded by the same classloader. 'Plugins' here means both annotation processors and Error Prone + * plugins. The annotation processor API is defined in the JDK and doesn't require any special + * handling, since the versions in the system classloader will always be loaded preferentially. + * For Error Prone plugins, we want to ensure that classes in the API are loaded from the same + * classloader as JavaBuilder, but that other classes referenced by plugins are loaded from the + * processor classpath to avoid plugins seeing stale versions of classes from the releases + * JavaBuilder jar. */ @Trusted private static class ClassloaderMaskingFileManager extends JavacFileManager { @@ -455,11 +459,8 @@ if (name.startsWith("com.google.errorprone.") || name.startsWith("com.google.common.collect.") || name.startsWith("com.google.common.base.") - || name.startsWith("com.google.common.graph.") || name.startsWith("com.google.common.regex.") || name.startsWith("org.checkerframework.errorprone.dataflow.") - || name.startsWith("com.sun.source.") - || name.startsWith("com.sun.tools.") || name.startsWith("com.google.devtools.build.buildjar.javac.statistics.")) { return Class.forName(name); }