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"], )