Sourced from guava's releases.
32.0.0
Maven
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>32.0.0-jre</version> <!-- or, for Android: --> <version>32.0.0-android</version> </dependency>
Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
Security fixes
- Reimplemented
Files.createTempDir
andFileBackedOutputStream
to further address CVE-2020-8908 (#4011) and CVE-2023-2976 (#2575). (feb83a1c8f)While CVE-2020-8908 was officially closed when we deprecated
Files.createTempDir
in Guava 30.0, we've heard from users that even recent versions of Guava have been listed as vulnerable in other databases of security vulnerabilities. In response, we've reimplemented the method (and the very rarely usedFileBackedOutputStream
class, which had a similar issue) to eliminate the insecure behavior entirely. This change could technically affect users in a number of different ways (discussed under "Incompatible changes" below), but in practice, the only problem users are likely to encounter is with Windows. If you are using those APIs under Windows, you should skip 32.0.0 and go straight to 32.0.1 which fixes the problem. (Unfortunately, we didn't think of the Windows problem until after the release. And while we warn thatcommon.io
in particular may not work under Windows, we didn't intend to regress support.) Sorry for the trouble.Incompatible changes
Although this release bumps Guava's major version number, it makes no binary-incompatible changes to the
guava
artifact.One change could cause issues for Widows users, and a few other changes could cause issues for users in more usual situations:
- The new implementations of
Files.createTempDir
andFileBackedOutputStream
throw an exception under Windows. This is fixed in 32.0.1. Sorry for the trouble.- This release makes a binary-incompatible change to a
@Beta
API in the separate artifactguava-testlib
. Specifically, we changed the return type ofTestingExecutors.sameThreadScheduledExecutor
toListeningScheduledExecutorService
. The old return type was a package-private class, which caused the Kotlin compiler to produce warnings. (dafaa3e435)- This release adds two methods to the Android flavor of Guava:
Invokable.getAnnotatedReturnType()
andParameter.getAnnotatedType()
. Those methods do not work under an Android VM; we added them only to help our tests of the Android flavor (since we also run those tests under a JRE). Android VMs tolerate such methods as long as the app does not call them or perform reflection on them, and builds tolerate them because of our new Proguard configurations (discussed below). Thus, we expect no impact to most users. However, we could imagine build problems for users who have set up their own build system for the Android flavor of Guava. Please report any problems so that we can judge how safely we might be able to add other methods to the Android flavor in the future, such as APIs that use Java 8 classes likeStream
. (b30e73cfa81ad15c1023c17cfd083255a3df0105)
... (truncated)