Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building Bazel@HEAD results in many Java-related warnings #19837

Closed
fmeum opened this issue Oct 16, 2023 · 10 comments · Fixed by bazelbuild/rules_java#142
Closed

Building Bazel@HEAD results in many Java-related warnings #19837

fmeum opened this issue Oct 16, 2023 · 10 comments · Fixed by bazelbuild/rules_java#142
Labels

Comments

@fmeum
Copy link
Collaborator

fmeum commented Oct 16, 2023

Description of the bug:

Running bazel build //src:bazel-dev on current master (e.g. 38bf100) of Bazel itself results in the following warning being emitted for what appears to be almost every Java target:

warning: [options] system modules path not set in conjunction with -source 11

Which category does this issue belong to?

Java Rules

What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

No response

Which operating system are you running Bazel on?

No response

What is the output of bazel info release?

No response

If bazel info release returns development version or (@non-git), tell us how you built Bazel.

No response

What's the output of git remote get-url origin; git rev-parse master; git rev-parse HEAD ?

No response

Is this a regression? If yes, please try to identify the Bazel commit where the bug was introduced.

No response

Have you found anything relevant by searching the web?

No response

Any other information, logs, or outputs that you want to share?

No response

@fmeum
Copy link
Collaborator Author

fmeum commented Oct 16, 2023

CC @cushon

@fmeum fmeum changed the title Building Bazel@HEAD results in one warning per Java target Building Bazel@HEAD results in many Java-related warnings Oct 16, 2023
@cushon
Copy link
Contributor

cushon commented Oct 16, 2023

I tried and wasn't able to repro.

I don't see 38bf100, I tested at 2ddacab80af1dca3c04e74809827c47ec4bc8498.

bazel build //src:bazel-dev
bazel-bin/src/bazel-dev build //src:bazel-dev

I don't see warning: [options] system modules path not set ... in the logs.

I tested with openjdk full version "17.0.6+10-LTS" as the local JDK, on a mac.

Am I holding it wrong?

@fmeum
Copy link
Collaborator Author

fmeum commented Oct 16, 2023

Sorry for the false alarm, I only see this on #18262, not master. I had the wrong branch checked out. It's still surprising.

@fmeum fmeum closed this as not planned Won't fix, can't repro, duplicate, stale Oct 16, 2023
@cushon
Copy link
Contributor

cushon commented Oct 16, 2023

Thanks, I can repro with

diff --git a/MODULE.bazel b/MODULE.bazel
index 4068f2e297..a4adc84765 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -24,7 +24,7 @@ bazel_dep(name = "zstd-jni", version = "1.5.2-3.bcr.1")
 bazel_dep(name = "blake3", version = "1.3.3.bcr.1")
 bazel_dep(name = "zlib", version = "1.3")
 bazel_dep(name = "rules_cc", version = "0.0.9")
-bazel_dep(name = "rules_java", version = "6.3.1")
+bazel_dep(name = "rules_java", version = "6.5.1")
 bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
 bazel_dep(name = "rules_jvm_external", version = "5.2")
 bazel_dep(name = "rules_python", version = "0.24.0")
diff --git a/distdir_deps.bzl b/distdir_deps.bzl
index 8c2f8e20c7..593ebc4cca 100644
--- a/distdir_deps.bzl
+++ b/distdir_deps.bzl
@@ -106,9 +106,9 @@ DIST_DEPS = {
             "rules_java_builtin",
             "rules_java_builtin_for_testing",
         ],
-        "archive": "rules_java-6.3.1.tar.gz",
-        "sha256": "117a1227cdaf813a20a1bba78a9f2d8fb30841000c33e2f2d2a640bd224c9282",
-        "urls": ["https://github.com/bazelbuild/rules_java/releases/download/6.3.1/rules_java-6.3.1.tar.gz"],
+        "archive": "rules_java-6.5.1.tar.gz",
+        "sha256": "7b0d9ba216c821ee8697dedc0f9d0a705959ace462a3885fe9ba0347ba950111",
+        "urls": ["https://github.com/bazelbuild/rules_java/releases/download/6.5.1/rules_java-6.5.1.tar.gz"],
         "workspace_file_content": "",
         "used_in": [
             "additional_distfiles",
bazel clean; bazel shutdown; bazel build --toolchain_resolution_debug=bootstrap_runtime_toolchain_type  -s //src/main/java/com/google/devtools/build/lib/cmdline:query_exception_marker_interface
...
warning: [options] system modules path not set in conjunction with -source 11

The issue is that --system is not getting passed to javac:

$ bazel aquery 'mnemonic(Javac, //src/main/java/com/google/devtools/build/lib/cmdline:query_exception_marker_interface)' | grep -A 1 -E 'bootclasspath|system'
...
    --bootclasspath \
    bazel-out/darwin_arm64-fastbuild/bin/external/bazel_tools/tools/jdk/platformclasspath.jar \

I wonder if something is going wrong here: https://github.com/bazelbuild/rules_java/blob/0cdcecb2ee3a1da92f95ba0af036f20fa4179fb5/toolchains/default_java_toolchain.bzl#L246-L249

@cushon cushon reopened this Oct 16, 2023
@iancha1992 iancha1992 added the team-Rules-Java Issues for Java rules label Oct 16, 2023
@benjaminp
Copy link
Collaborator

It's unsurprising to see this if host Bazel is <7 as 149cbce was not backported.

@davido
Copy link
Contributor

davido commented Oct 17, 2023

I can reproduce this problem on Bazel@HEAD (2ddacab), when building with RBE:

  $ bazelisk build --config=remote --remote_instance_name=$PROJECT src:bazel-bin-dev
[...]
warning: [options] system modules path not set in conjunction with -source 11
[...]

@fmeum
Copy link
Collaborator Author

fmeum commented Oct 17, 2023

@davido Bazel is currently using a pre-7 Bazel version to build itself, which doesn't have 149cbce.

149cbce has always been missing in the 6.X releases, but this warning is only showing up with a newer rules_java. I am not sure whether 149cbce could break anything if we backport it.

@fmeum
Copy link
Collaborator Author

fmeum commented Oct 17, 2023

@bazel-io flag

@bazel-io bazel-io added the potential release blocker Flagged by community members using "@bazel-io flag". Should be added to a release blocker milestone label Oct 17, 2023
@fmeum fmeum removed the potential release blocker Flagged by community members using "@bazel-io flag". Should be added to a release blocker milestone label Oct 17, 2023
fmeum added a commit to fmeum/rules_java that referenced this issue Oct 17, 2023
This reverts commit 54e89da.

Going through `@bazel_tools` to reference the bootstrap classpath is no
longer needed with Bazel 7, which always uses toolchain macros that
define the required bootstrap runtime toolchains.

Since the original problem didn't arise with Bzlmod, where the Java
toolchains have always come from rules_java rather than bazel_tools,
this fixes bazelbuild/bazel#19837 for Bazel
itself by allowing it to use the new bootstrap classpath rule while
still being built with Bazel 6.4.0.
@fmeum
Copy link
Collaborator Author

fmeum commented Oct 17, 2023

This should be fixed by bazelbuild/rules_java#142 + having a rules_java release for Bazel 7+.

fmeum added a commit to fmeum/bazel that referenced this issue Oct 19, 2023
fmeum added a commit to fmeum/bazel that referenced this issue Oct 19, 2023
fmeum added a commit to fmeum/bazel that referenced this issue Oct 19, 2023
vorburger added a commit to vorburger/enola that referenced this issue Dec 31, 2023
warning: [options] system modules path not set in conjunction with -source 11

can be safely ignored; that just seems to be due to
bazelbuild/bazel#19837;
apparently is will disappear when I update Bazel
from 6.2.1 7.0.0.
vorburger added a commit to enola-dev/enola that referenced this issue Dec 31, 2023
warning: [options] system modules path not set in conjunction with -source 11

can be safely ignored; that just seems to be due to
bazelbuild/bazel#19837;
apparently is will disappear when I update Bazel
from 6.2.1 7.0.0.
@JohnnyMorganz
Copy link

JohnnyMorganz commented Apr 16, 2024

Apologies for bringing up an old issue, but this seems most relevant to a problem I am currently facing.

We currently have a Bazel 6.4.0 repository that we recently enabled Bzlmod on. Our java_runtime_version and java_language_version is set to 11. When enabling bzlmod, it caused the JDK version of the compiler to switch from JDK 11 to JDK 17. From what I read based off #19934 (comment), this is expected. The rules_java version for bzlmod on 6.4.0 is 5.5.1.

When we enabled bzlmod, we started getting the same warnings warning: [options] system modules path not set in conjunction with -source 11. But what is more of a problem, is we started to get build failures reference to Record is ambiguous, due to a collision with the class java.lang.Record. This is odd, because that class was only introduced from 16+, but makes sense if the system flag is not being passed to javac.

However, based on this issue, it should be solved by the revert of the platformclasspath commit. But, AIUI this commit was not present for rules_java version 5.5.1 -https://github.com/bazelbuild/rules_java/blob/cc25058f4dcb66d9eaa40f1ccd72a856aa3f6e04/toolchains/default_java_toolchain.bzl#L83. Aquery also shows that bootclasspath is set to bazel-out/k8-fastbuild/bin/external/rules_java~5.5.1/toolchains/platformclasspath.jar. Also, using the temporary workaround in fmeum@6daa568 does not help. So, is there a separate reason why this is happening? (EDIT: see below note)

Here is a minimal repro setup: https://github.com/JohnnyMorganz/bazel-java-system-bug

Command causing failure:

$ USE_BAZEL_VERSION=6.4.0 bazel build //foo

Note that the build is successful when either:
a) disabling bzlmod (removing common --enable_bzlmod)
b) using Bazel 7.0.0+ (USE_BAZEL_VERSION=7.0.0 bazel build //foo), probably because of 149cbce - this is a longer term effort for us so we cannot do this immediately.

I can work around the compilation error by adding explicit imports (which we will need to do anyways if we want to upgrade JDK versions). But, we still get the warning on every java target build.

If this is better served as a new issue, let me know.

EDIT: Diffing the output of aquery before and after bzlmod is enabled produces the below

diff --git a/before_bzlmod b/after_bzlmod
index b5f956f..3b4f908 100644
--- a/before_bzlmod
+++ b/after_bzlmod
@@ -3,13 +3,12 @@ action 'Building foo/libfoo.jar (1 source file)'
   Target: //foo:foo
   Configuration: k8-fastbuild
   Execution platform: @local_config_platform//:host
-  ActionKey: d8678219df820a8bc3a259f6a027e5f2e58ac7cbda6be597aa1150dc5b16dd4e
-  Inputs: [bazel-out/k8-fastbuild/bin/bar/libbar-hjar.jar, bazel-out/k8-fastbuild/bin/bar/libbar-hjar.jdeps, bazel-out/k8-fastbuild/bin/external/bazel_tools/tools/jdk/platformclasspath.jar, external/remote_java_tools/java_tools/JavaBuilder_deploy.jar, external/remotejdk11_linux/bin/jaotc, external/remotejdk11_linux/bin/jar, external/remotejdk11_linux/bin/jarsigner, external/remotejdk11_linux/bin/java, external/remotejdk11_linux/bin/javac, external/remotejdk11_linux/bin/javadoc, external/remotejdk11_linux/bin/javap, external/remotejdk11_linux/bin/jcmd, external/remotejdk11_linux/bin/jconsole, external/remotejdk11_linux/bin/jdb, external/remotejdk11_linux/bin/jdeprscan, external/remotejdk11_linux/bin/jdeps, external/remotejdk11_linux/bin/jfr, external/remotejdk11_linux/bin/jhsdb, external/remotejdk11_linux/bin/jimage, external/remotejdk11_linux/bin/jinfo, external/remotejdk11_linux/bin/jjs, external/remotejdk11_linux/bin/jlink, external/remotejdk11_linux/bin/jmap, external/remotejdk11_linux/bin/jmod, external/remotejdk11_linux/bin/jps, external/remotejdk11_linux/bin/jrunscript, external/remotejdk11_linux/bin/jshell, external/remotejdk11_linux/bin/jstack, external/remotejdk11_linux/bin/jstat, external/remotejdk11_linux/bin/jstatd, external/remotejdk11_linux/bin/keytool, external/remotejdk11_linux/bin/pack200, external/remotejdk11_linux/bin/rmic, external/remotejdk11_linux/bin/rmid, external/remotejdk11_linux/bin/rmiregistry, external/remotejdk11_linux/bin/serialver, external/remotejdk11_linux/bin/unpack200, external/remotejdk11_linux/conf/logging.properties, external/remotejdk11_linux/conf/management/jmxremote.access, external/remotejdk11_linux/conf/management/jmxremote.password.template, external/remotejdk11_linux/conf/management/management.properties, external/remotejdk11_linux/conf/net.properties, external/remotejdk11_linux/conf/security/java.policy, external/remotejdk11_linux/conf/security/java.security, external/remotejdk11_linux/conf/security/policy/README.txt, external/remotejdk11_linux/conf/security/policy/limited/default_US_export.policy, external/remotejdk11_linux/conf/security/policy/limited/default_local.policy, external/remotejdk11_linux/conf/security/policy/limited/exempt_local.policy, external/remotejdk11_linux/conf/security/policy/unlimited/default_US_export.policy, external/remotejdk11_linux/conf/security/policy/unlimited/default_local.policy, external/remotejdk11_linux/conf/sound.properties, external/remotejdk11_linux/include/classfile_constants.h, external/remotejdk11_linux/include/jawt.h, external/remotejdk11_linux/include/jdwpTransport.h, external/remotejdk11_linux/include/jni.h, external/remotejdk11_linux/include/jvmti.h, external/remotejdk11_linux/include/jvmticmlr.h, external/remotejdk11_linux/include/linux/jawt_md.h, external/remotejdk11_linux/include/linux/jni_md.h, external/remotejdk11_linux/lib/classlist, external/remotejdk11_linux/lib/ct.sym, external/remotejdk11_linux/lib/jexec, external/remotejdk11_linux/lib/jfr/default.jfc, external/remotejdk11_linux/lib/jfr/profile.jfc, external/remotejdk11_linux/lib/jli/libjli.so, external/remotejdk11_linux/lib/jrt-fs.jar, external/remotejdk11_linux/lib/jspawnhelper, external/remotejdk11_linux/lib/jvm.cfg, external/remotejdk11_linux/lib/libattach.so, external/remotejdk11_linux/lib/libawt.so, external/remotejdk11_linux/lib/libawt_headless.so, external/remotejdk11_linux/lib/libawt_xawt.so, external/remotejdk11_linux/lib/libdt_socket.so, external/remotejdk11_linux/lib/libextnet.so, external/remotejdk11_linux/lib/libfontmanager.so, external/remotejdk11_linux/lib/libfreetype.so, external/remotejdk11_linux/lib/libinstrument.so, external/remotejdk11_linux/lib/libj2gss.so, external/remotejdk11_linux/lib/libj2pcsc.so, external/remotejdk11_linux/lib/libj2pkcs11.so, external/remotejdk11_linux/lib/libjaas.so, external/remotejdk11_linux/lib/libjava.so, external/remotejdk11_linux/lib/libjavajpeg.so, external/remotejdk11_linux/lib/libjawt.so, external/remotejdk11_linux/lib/libjdwp.so, external/remotejdk11_linux/lib/libjimage.so, external/remotejdk11_linux/lib/libjsig.so, external/remotejdk11_linux/lib/libjsound.so, external/remotejdk11_linux/lib/liblcms.so, external/remotejdk11_linux/lib/libmanagement.so, external/remotejdk11_linux/lib/libmanagement_agent.so, external/remotejdk11_linux/lib/libmanagement_ext.so, external/remotejdk11_linux/lib/libmlib_image.so, external/remotejdk11_linux/lib/libnet.so, external/remotejdk11_linux/lib/libnio.so, external/remotejdk11_linux/lib/libprefs.so, external/remotejdk11_linux/lib/librmi.so, external/remotejdk11_linux/lib/libsaproc.so, external/remotejdk11_linux/lib/libsctp.so, external/remotejdk11_linux/lib/libsplashscreen.so, external/remotejdk11_linux/lib/libsunec.so, external/remotejdk11_linux/lib/libunpack.so, external/remotejdk11_linux/lib/libverify.so, external/remotejdk11_linux/lib/libzip.so, external/remotejdk11_linux/lib/modules, external/remotejdk11_linux/lib/psfont.properties.ja, external/remotejdk11_linux/lib/psfontj2d.properties, external/remotejdk11_linux/lib/security/blocked.certs, external/remotejdk11_linux/lib/security/cacerts, external/remotejdk11_linux/lib/security/default.policy, external/remotejdk11_linux/lib/security/public_suffix_list.dat, external/remotejdk11_linux/lib/server/Xusage.txt, external/remotejdk11_linux/lib/server/libjsig.so, external/remotejdk11_linux/lib/server/libjvm.so, external/remotejdk11_linux/lib/src.zip, external/remotejdk11_linux/lib/tzdb.dat, foo/Foo.java]
+  ActionKey: cd507606ef0653c27a9257406292c1c22aea3e6420d0a3e47715f877cfdd1cda
+  Inputs: [bazel-out/k8-fastbuild/bin/bar/libbar-hjar.jar, bazel-out/k8-fastbuild/bin/bar/libbar-hjar.jdeps, bazel-out/k8-fastbuild/bin/external/rules_java~5.5.1/toolchains/platformclasspath.jar, external/rules_java~5.5.1~toolchains~remote_java_tools/java_tools/JavaBuilder_deploy.jar, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jar, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jarsigner, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/java, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/javac, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/javadoc, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/javap, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jcmd, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jconsole, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jdb, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jdeprscan, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jdeps, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jfr, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jhsdb, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jimage, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jinfo, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jlink, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jmap, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jmod, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jpackage, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jps, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jrunscript, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jshell, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jstack, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jstat, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/jstatd, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/keytool, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/rmiregistry, external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/serialver, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/logging.properties, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/management/jmxremote.access, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/management/jmxremote.password.template, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/management/management.properties, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/net.properties, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/sdp/sdp.conf.template, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/java.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/java.security, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/README.txt, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/limited/default_US_export.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/limited/default_local.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/limited/exempt_local.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/unlimited/default_US_export.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/security/policy/unlimited/default_local.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/conf/sound.properties, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/classfile_constants.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/jawt.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/jdwpTransport.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/jni.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/jvmti.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/jvmticmlr.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/linux/jawt_md.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/include/linux/jni_md.h, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/classlist, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/ct.sym, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jexec, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jfr/default.jfc, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jfr/profile.jfc, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jrt-fs.jar, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jspawnhelper, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/jvm.cfg, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libattach.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libawt.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libawt_headless.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libawt_xawt.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libdt_socket.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libextnet.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libfontmanager.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libfreetype.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libinstrument.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libj2gss.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libj2pcsc.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libj2pkcs11.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjaas.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjava.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjavajpeg.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjawt.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjdwp.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjimage.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjli.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjsig.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjsound.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libjsvml.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/liblcms.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libmanagement.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libmanagement_agent.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libmanagement_ext.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libmlib_image.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libnet.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libnio.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libprefs.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/librmi.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libsaproc.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libsctp.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libsplashscreen.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libsyslookup.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libverify.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/libzip.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/modules, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/psfont.properties.ja, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/psfontj2d.properties, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/security/blocked.certs, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/security/cacerts, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/security/default.policy, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/security/public_suffix_list.dat, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/server/classes.jsa, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/server/classes_nocoops.jsa, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/server/libjsig.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/server/libjvm.so, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/src.zip, external/rules_java~5.5.1~toolchains~remotejdk17_linux/lib/tzdb.dat, foo/Foo.java]
   Outputs: [bazel-out/k8-fastbuild/bin/foo/libfoo-native-header.jar, bazel-out/k8-fastbuild/bin/foo/libfoo.jar, bazel-out/k8-fastbuild/bin/foo/libfoo.jar_manifest_proto, bazel-out/k8-fastbuild/bin/foo/libfoo.jdeps]
   Environment: [LC_CTYPE=en_US.UTF-8, OSRELEASE=el9, PREVENT_TC_CACHE_POISONING=donotremove]
   ExecutionInfo: {internal-inline-outputs: bazel-out/k8-fastbuild/bin/foo/libfoo.jdeps, supports-multiplex-workers: 1, supports-worker-cancellation: 1, supports-workers: 1}
-  Command Line: (exec external/remotejdk11_linux/bin/java \
-    -XX:-CompactStrings \
+  Command Line: (exec external/rules_java~5.5.1~toolchains~remotejdk17_linux/bin/java \
     '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED' \
     '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED' \
     '--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED' \
@@ -24,10 +23,9 @@ action 'Building foo/libfoo.jar (1 source file)'
     '--add-opens=java.base/java.nio=ALL-UNNAMED' \
     '--add-opens=java.base/java.lang=ALL-UNNAMED' \
     '-Dsun.io.useCanonCaches=false' \
-    -Xlog:disable \
-    '-Xlog:all=warning:stderr:uptime,level,tags' \
+    -XX:-CompactStrings \
     -jar \
-    external/remote_java_tools/java_tools/JavaBuilder_deploy.jar \
+    external/rules_java~5.5.1~toolchains~remote_java_tools/java_tools/JavaBuilder_deploy.jar \
     --output \
     bazel-out/k8-fastbuild/bin/foo/libfoo.jar \
     --native_header_output \
@@ -38,7 +36,7 @@ action 'Building foo/libfoo.jar (1 source file)'
     --output_deps_proto \
     bazel-out/k8-fastbuild/bin/foo/libfoo.jdeps \
     --bootclasspath \
-    bazel-out/k8-fastbuild/bin/external/bazel_tools/tools/jdk/platformclasspath.jar \
+    bazel-out/k8-fastbuild/bin/external/rules_java~5.5.1/toolchains/platformclasspath.jar \
     --sources \
     foo/Foo.java \
     --javacopts \
@@ -55,7 +53,6 @@ action 'Building foo/libfoo.jar (1 source file)'
     -Xep:EmptyTopLevelDeclaration:OFF \
     -Xep:LenientFormatStringValidation:OFF \
     -Xep:ReturnMissingNullable:OFF \
-    -Xep:UseCorrectAssertInTests:OFF \
     -- \
     --target_label \
     //foo:foo \

And we can see the bootclasspath changed (but it changed from what the reverted commit was trying to do?)
If I try to register a java_toolchain with the old bootclasspath, it doesn't resolve the issue

load("@rules_java//toolchains:default_java_toolchain.bzl", "default_java_toolchain")
default_java_toolchain(
    name = "bazel_java_toolchain",
    bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"],
    source_version = "11",
    tags = ["manual"],
    target_version = "11",
)

EDIT 2:. According to https://stackoverflow.com/questions/66068153/java-warning-options-system-modules-path-not-set-in-conjunction-with-source, this warning was only introduced in JDK 14+. So it makes sense why this didnt show up pre bzlmod, as that was using JDK 11 runtime for compiler.

However, it was mentioned earlier that

149cbce has always been missing in the 6.X releases, but this warning is only showing up with a newer rules_java

which makes me think that there should be a way to get rid of these warnings. Is that true? I tried upgrading to rules_java 7.0.6 but it still warns. Was this issue solved for pre-Bazel 7?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants