Skip to content

Update Gradle to 9.7.0 - #12162

Open
AlexeyKuznetsov-DD wants to merge 4 commits into
masterfrom
alexeyk/gradle-9.7.0
Open

Update Gradle to 9.7.0#12162
AlexeyKuznetsov-DD wants to merge 4 commits into
masterfrom
alexeyk/gradle-9.7.0

Conversation

@AlexeyKuznetsov-DD

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

  • Updates the Gradle wrapper from 9.6.1 to 9.7.0, including the generated wrapper JAR, distribution checksum, and URL.
  • Keeps the GitLab CI Gradle cache/version key and Gradle smoke-test version fixture aligned with the wrapper.
  • Isolates Muzzle's synthetic instrumentation and application classloaders from Gradle's bundled libraries while preserving access to platform JDK classes.

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 — passed
  • GitLab's sharded Muzzle runs were used while refining the classloader boundary.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD added comp: tooling Build & Tooling type: refactoring tag: no release notes Changes to exclude from release notes tag: ai generated Largely based on code generated by an AI or LLM labels Aug 7, 2026 — with ChatGPT Codex Connector
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD self-assigned this Aug 7, 2026
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD marked this pull request as ready for review August 7, 2026 17:12
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD requested review from a team as code owners August 7, 2026 17:12
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD requested review from amarziali and erikayasuda and removed request for a team August 7, 2026 17:12
@dd-octo-sts

dd-octo-sts Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.99 s 13.96 s [-0.5%; +0.9%] (no difference)
startup:insecure-bank:tracing:Agent 12.89 s 12.98 s [-1.5%; +0.0%] (no difference)
startup:petclinic:appsec:Agent 16.85 s 16.61 s [+0.4%; +2.4%] (maybe worse)
startup:petclinic:iast:Agent 16.91 s 16.90 s [-0.6%; +0.7%] (no difference)
startup:petclinic:profiling:Agent 16.77 s 16.83 s [-1.5%; +0.8%] (no difference)
startup:petclinic:sca:Agent 16.72 s 16.54 s [+0.2%; +2.0%] (maybe worse)
startup:petclinic:tracing:Agent 15.64 s 16.25 s [-7.8%; +0.4%] (no difference)

Commit: 35c96599 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@datadog-prod-us1-4 datadog-prod-us1-4 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

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.

Was this helpful? React 👍 or 👎

📊 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: tooling Build & Tooling tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant