Switch to Java 25

Bump the build and tool Java language/runtime versions from 21 to 25 and
retarget the Error Prone default_java_toolchain at remotejdk_25.

No sun.misc.Unsafe workaround is needed: rules_java 9.9.0 (the parent
commit) bundles protobuf 36.0 for JavaBuilder and turbine, which no
longer call the sun.misc.Unsafe memory-access methods that required
--sun-misc-unsafe-memory-access=allow on JDK 24+. The JDK <= 21
-XDaddTypeAnnotationsToSymbol workaround is also dropped, as it was a
no-op on JDK 22+.

Also bump the Eclipse compiler compliance, source and target levels in
.settings/org.eclipse.jdt.core.prefs from 1.8 to 25. That file dated
back to when Gitiles was a Java 8 project and was never updated, so
Eclipse rejected Java 9+ syntax (e.g. the diamond operator on anonymous
classes) in imported sources even though the JRE container is JavaSE-25.

Change-Id: Ic4765288722a9f3b2f4413cc9708d9a024f39c61
diff --git a/.bazelrc b/.bazelrc
index 63ecdcc..f574974 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -6,11 +6,11 @@
 build --action_env=PATH
 build --disk_cache=~/.gerritcodereview/bazel-cache/cas
 
-# Builds using remote_jdk21, executes using remote_jdk21 or local_jdk
-build --java_language_version=21
-build --java_runtime_version=remotejdk_21
-build --tool_java_language_version=21
-build --tool_java_runtime_version=remotejdk_21
+# Builds using remotejdk_25, executes using remotejdk_25 or local_jdk
+build --java_language_version=25
+build --java_runtime_version=remotejdk_25
+build --tool_java_language_version=25
+build --tool_java_runtime_version=remotejdk_25
 
 test --build_tests_only
 test --test_output=errors
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index db7a8d9..524d9f0 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -7,9 +7,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=25
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=25
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -115,7 +115,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=25
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
diff --git a/MODULE.bazel b/MODULE.bazel
index 969b725..59e5fa4 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -26,7 +26,7 @@
     remote = "https://github.com/davido/rbe_autoconfig.git",
 )
 
-register_toolchains("//tools:error_prone_warnings_toolchain_java21_definition")
+register_toolchains("//tools:error_prone_warnings_toolchain_java25_definition")
 
 # Bazlets pin and packaging support.
 include("//tools:bazlets.MODULE.bazel")
diff --git a/tools/BUILD b/tools/BUILD
index 8e28638..8c770b4 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -5,29 +5,14 @@
 load("@rules_java//java:defs.bzl", "java_package_configuration")
 
 default_java_toolchain(
-    name = "error_prone_warnings_toolchain_java21",
+    name = "error_prone_warnings_toolchain_java25",
     configuration = dict(),
-    java_runtime = "@rules_java//toolchains:remotejdk_21",
-    javacopts = [
-        # JDK-8225377: before JDK 22, javac does not attach type-use annotations
-        # loaded from classpath class files to their symbols, so Error Prone
-        # emits NullArgumentForNonNullParameter false positives on idiomatic
-        # Guava calls (Iterables.getFirst(x, null),
-        # ToStringHelper.add(name, nullable)). This flag opts in to the fix on
-        # JDK 21 (available 21.0.8+); it is enabled by default and a no-op on
-        # JDK 22+. Error Prone's own -Xplugin path requires this flag on
-        # JDK <= 21, but Bazel's JavaBuilder wires Error Prone directly and does
-        # not pass it.
-        # TODO(davido): Remove once JavaBuilder passes this flag itself on
-        # JDK <= 21. To be filed against bazelbuild/bazel (JavaBuilder); tracked
-        # at https://github.com/google/error-prone/issues/5426.
-        "-XDaddTypeAnnotationsToSymbol=true",
-    ],
+    java_runtime = "@rules_java//toolchains:remotejdk_25",
     package_configuration = [
         ":error_prone",
     ],
-    source_version = "21",
-    target_version = "21",
+    source_version = "25",
+    target_version = "25",
     visibility = ["//visibility:public"],
 )