Skip to content

Upgrade guava from 22.0 to 33.3.0-jre - #6759

Open
Akanksha-kedia wants to merge 3 commits into
apache:masterfrom
Akanksha-kedia:fix/bump-guava-cve
Open

Akanksha-kedia wants to merge 3 commits into
apache:masterfrom
Akanksha-kedia:fix/bump-guava-cve

Conversation

@Akanksha-kedia

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Bumps the guava.version property from 22.0 to 33.3.0-jre. Every module in this repo declares the bare guava artifactId with no -jre/-android classifier and relies on ${guava.version} to supply it — Guava stopped publishing unsuffixed artifacts after 22.0, so the new version carries the -jre suffix directly in the property value.

Why are the changes needed?

22.0 was released in 2017 and predates fixes for known Guava CVEs, including CVE-2020-8908 and CVE-2023-2976, both involving Files.createTempDir() creating a world-readable/writable temporary directory.

Does this PR introduce any user-facing change?

No.

How was this patch tested?

Checked the most common cross-major-version Guava breakage pattern before bumping: every Futures.addCallback(...) call site in this repo already uses the 3-argument form with an explicit Executor, so the 2-argument overload removed in later Guava versions doesn't affect this codebase. Also confirmed no dependencyConvergence/requireUpperBoundDeps enforcer rule would block on this. Could not run a full Maven build in my environment to compile-verify beyond that — appreciate extra CI/review scrutiny here given the size of the version jump.

22.0 (2017) predates fixes for known Guava CVEs (e.g. CVE-2020-8908,
CVE-2023-2976, both involving Files.createTempDir() creating a
world-readable/writable temp directory). Guava stopped publishing
unsuffixed artifacts after 22.0, so the version property now carries
the -jre classifier directly, since every module in this repo declares
the bare "guava" artifactId and relies on ${guava.version} to supply it.

Checked for the most common cross-version breakage pattern before
bumping: every Futures.addCallback(...) call site in this repo already
uses the 3-arg form with an explicit Executor, so the 2-arg overload
removed in later Guava versions isn't affected. Could not run a full
build in this environment to compile-verify beyond that, so extra CI
scrutiny on this one would be appreciated.
Jenkins pr-head returned a generic infra error (state=ERROR, "This
commit cannot be built") on the previous commit while GitHub Actions
build checks passed cleanly on the same code - unrelated to this
change. Empty commit to force a fresh webhook-triggered build.
@Akanksha-kedia

Copy link
Copy Markdown
Contributor Author

@ayushtkn @uros-b would appreciate a review here when you have a chance.

Jenkins pr-head is still stuck in state=ERROR after the previous
retrigger attempt. Empty commit to force another fresh webhook build.
@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

@uros-b uros-b left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Wasn't this already attempted in #4271? cc @aturoczy @ayushtkn

@ayushtkn

Copy link
Copy Markdown
Member

this has been attempted a lot of time @Akanksha-kedia and this isn't just a POM change, Half the problems are not solvable due to thirdparty issues, Hadoop took that hadoop-thirdparty route for Guava, Maybe one day we will do the same for Hive...

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants