-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Labels
Description
In this case the Gradle daemon runs on jdk21, as defined by its toolchain in gradle-daemon-jvm.properties. While the Caffeine project normally uses jdk21 with --release 11, for its internal tooling that uses jdk24's Gatherers to replace its own batching with windowFixed. Gradle 8.13 does not yet support running on jdk24, but this all works itself out thanks to toolchain settings which auto bootstrap the jdks if absent.
Upgrading to v3.9 and re-enabling the task fails as below (./gradlew forbiddenApis -DforbiddenApis -q -). The Gatherers is not available in the daemon's jdk but is in the compiler's. It succeeds if using gradle nightly (8.14 pre-release) and a jdk24 daemon.
Caused by: de.thetaphi.forbiddenapis.ForbiddenApiException: Check for forbidden API calls failed while scanning class 'com.github.benmanes.caffeine.cache.simulator.Simulator' (Simulator.java): java.lang.ClassNotFoundException: java.util.stream.Gatherers (while looking up details about referenced class 'java.util.stream.Gatherers')
at de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:458)
at de.thetaphi.forbiddenapis.Checker.run(Checker.java:509)
at de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis.checkForbidden(CheckForbiddenApis.java:666)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
... 122 more
Caused by: java.lang.ClassNotFoundException: java.util.stream.Gatherers
at de.thetaphi.forbiddenapis.Checker.getClassFromClassLoader(Checker.java:299)
at de.thetaphi.forbiddenapis.Checker.lookupRelatedClass(Checker.java:311)
at de.thetaphi.forbiddenapis.ClassScanner.checkClassUse(ClassScanner.java:109)
at de.thetaphi.forbiddenapis.ClassScanner.checkClassUse(ClassScanner.java:123)
at de.thetaphi.forbiddenapis.ClassScanner$3.checkMethodAccess(ClassScanner.java:399)
at de.thetaphi.forbiddenapis.ClassScanner$3.visitMethodInsn(ClassScanner.java:569)
at de.thetaphi.forbiddenapis.asm.ClassReader.readCode(ClassReader.java:2447)
at de.thetaphi.forbiddenapis.asm.ClassReader.readMethod(ClassReader.java:1512)
at de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:745)
at de.thetaphi.forbiddenapis.asm.ClassReader.accept(ClassReader.java:425)
at de.thetaphi.forbiddenapis.Checker.checkClass(Checker.java:444)
... 127 more