Update Gradle to 9.7.0 - #12162
Conversation
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
There was a problem hiding this comment.
More details
Muzzle’s synthetic loaders retained platform and declared classes while rejecting Gradle/system-only classes in both worker isolation modes and on JDK 8–25. The wrapper JAR is readable and every version pin agrees on 9.7.0.
📊 Validated against 10 scenarios · Open Bits AI session
🤖 Datadog Autotest · Commit 35c9659 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
What Does This Do
Motivation
This adopts Gradle 9.7.0.
The upgrade exposed an existing classloader-boundary problem in the Muzzle worker. Muzzle created its synthetic classloaders with
ClassLoader.getSystemClassLoader()as the parent. Because Muzzle runs inside Gradle, parent-first delegation made libraries bundled with the Gradle runtime visible as though they belonged to the instrumentation or target application classpath. Gradle 9.7 changed that runtime library set, which caused Muzzle compatibility checks to resolve classes that the tested dependency set did not actually provide and produced false failures.Using no parent removed the Gradle leakage, but also hid platform JDK classes on modular JDKs. The final implementation uses the system classloader's parent: Muzzle retains the platform/boot layer needed for JDK classes, while Gradle's application classloader and its bundled dependencies stay outside the synthetic application classpath.
This Muzzle adjustment affects build-time validation only; it does not change the shipped agent's runtime classloading.
Additional Notes
Validation after merging current
master:./gradlew assemble— passedContributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueJira ticket: [PROJ-IDENT]