33.7.2
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.7.2-jre</version>
<!-- or, for Android: -->
<version>33.7.2-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
collect: ChangedMapMaker,CompactHashMap, andCompactHashSetdeserialization to avoid eagerly allocating as much memory as a serialization payload requests. (a0d0c36432)
33.7.1
Guava 33.7.1 removes the Multi-Release line from our jar manifest, fixing an issue under Java 9 and 10 that was introduced to guava-jre in version 33.7.0. Sorry for the trouble.
33.7.0
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.7.0-jre</version>
<!-- or, for Android: -->
<version>33.7.0-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- The Android jar now contains our Proguard configs. (b0668e7174)
- The Guava
module-info.classis now present at the root of the jar instead of under a multi-release root. This prevents the jar from containing a file atMETA-INF/versions/9/OSGI-INF/MANIFEST.MF, which occasionally causes trouble for some users. (230019b31e) - Our Android
minSdkVersionis now 24 (Nougat). This follows the minimum of Google's foundational Android libraries, and we expect it to have no practical impact on users. (ea0af870d5) collect: Changed someImmutableMapimplementations to create a new, lightweight object on each call to view methods likekeySet(), rather than creating and storing that object during the first call for reuse later. This is likely to slightly improve performance for some users, but it could lead to regressions in unusual cases, such as repeatedly callingasMultimap().inverse()on the sameImmutableMapinstance. (e87d019e47)net: AddedHttpHeadersconstant foron-prefetch-activation. (abd06a3679)net: AddedMediaTypeconstants forapplication/yamlandapplication/x-pem-file. (a8e9533b49, 1d40e27a4b)util.concurrent: FixedExecutionSequencerqueue stall when delegate executor throwsRejectedExecutionException. (8410194eed)
33.6.0
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.6.0-jre</version>
<!-- or, for Android: -->
<version>33.6.0-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Migrated some classes from
finalize()toPhantomReferencein preparation for the removal of finalization. (786b619dd6, 7c6b17c, aeef90988d) cache: DeprecatedCacheBuilderAPIs that useTimeUnitin favor of those that useDuration. (73f8b0bb84)collect: AddedtoImmutableSortedMapcollectors that use the natural comparator. (64d70b9f94)collect: ChangedConcurrentHashMultiset,ImmutableMapandTreeMultisetdeserialization to avoid mutatingfinalfields. In extremely unlikely scenarios in which an instance of that type contains an object that refers back to that instance, this could lead to a broken instance that throwsNullPointerExceptionwhen used. (8240c7e596, 046468055f)graph: Removed@Betafrom all APIs in the package. (dae9566b73)graph: Added support toGraphs.transitiveClosure()for different strategies for adding self-loops. (2e13df25b2)graph: Added anasNetwork()view toGraphandValueGraph. (909c593c61)hash: AddedBloomFilter.serializedSize(). (df9bcc251a)net: AddedHttpHeaders.CDN_CACHE_CONTROL. (75331b5030)
33.5.0
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.5.0-jre</version>
<!-- or, for Android: -->
<version>33.5.0-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Restored the
Automatic-Module-Nametoguava-android. (It, unlike,guava-jre, is not a proper module.) (7a04a8a955) - For users of
guava-gwt: Google has moved off GWT internally. We plan to continue to releaseguava-gwtfor users of GWT and J2CL, but the artifact is no longer tested for GWT-specific issues, and we have limited resources to fix any unexpected issues that might arise. While we do not anticipate any specific problems, we can't guarantee how long support will continue. - Increased our Android
minSdkVersionto 23 (Marshmallow). This follows the minimum of Google's foundational Android libraries, and we expect it to have no practical impact on users. (5c23347cc1) - Listed the JSpecify annotations as an optional dependency in our OSGi metadata. (2dfd572981)
cache: Improved the handling of exceptions from compute functions inCache.asMap(). (We do still recommend using Caffeine rather thancom.google.common.cache.) (087f2c4a80)collect: ImprovedIterators.mergeSorted()to preserve stability for equal elements. (4dc93be9a8)math: AddedsaturatedAbsmethods toIntMathandLongMath. (ed0e518f20)net: Addedimage/aviftoMediaType. (53344caba6)testing: MadeCollectorTesteravailable to Android users. (294c251079)util.concurrent: AddedStriped.custom. (1586eb271d)
33.4.8
Guava 33.4.8 fixes a problem that we introduced while starting to migrate guava-android off Unsafe in 33.4.7.
Even if you're not upgrading from Guava 33.4.0 or earlier, still read the release notes for Guava 33.4.1. Those release notes contain information about the effects of Guava 33.4.5 and higher on the module system.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.8-jre</version>
<!-- or, for Android: -->
<version>33.4.8-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
util.concurrent: Removed ourVarHandlecode fromguava-android. While the code was never used at runtime under Android, it was causing problems under the Android Gradle Plugin with aminSdkVersionbelow 26. To continue to avoidsun.misc.Unsafeunder the JVM,guava-androidwill now always useAtomicReferenceFieldUpdaterwhen run there. (75da92419a)
33.4.7
Prefer to upgrade straight to 33.4.8: 33.4.7 breaks the build of Android apps with a minSdkVersion below 26. We will publish a fixed version soon. This problem is fixed in 33.4.8.
Guava 33.4.7, like 33.4.6, fixes two problems that we introduced while modularizing Guava and migrating off Unsafe in 33.4.5.
Even if you're not upgrading from Guava 33.4.0 or earlier, still read the release notes for Guava 33.4.1. Those release notes contain information about the effects of Guava 33.4.5 and higher on the module system.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.7-jre</version>
<!-- or, for Android: -->
<version>33.4.7-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Modified the
guavamodule's dependency onfailureaccessto betransitive. Also, modified theguava-testlibmodule to make its dependency onguavatransitive, to remove its dependency onfailureaccess, and to add a dependency (transitive) onjunit. (63ecdf2239) util.concurrent: Modified our fast paths to ensure that they continue to work when run through optimizers, such as those commonly used by Android apps. This fixes problems that some users may have seen since Guava 33.4.5. (b8dcaede09bcf1c3bd5fc037690498f6ac560c54, f9eff73b8d)util.concurrent: Changed theguava-androidcopy ofAbstractFutureto tryVarHandlebeforeUnsafe, eliminating a warning under newer JDKs. (7336af1831)
33.4.6
Prefer to upgrade straight to 33.4.8: While Guava 33.4.6 fixes two problems that we introduced while modularizing Guava in 33.4.5, it still contains some small problems with the module system, and it may still cause trouble for optimizers, and the subsequent 33.4.7 breaks the build of Android apps with a minSdkVersion below 26. These problems have been fixed in 33.4.8.
Even if you're not upgrading from Guava 33.4.0 or earlier, still read the release notes for Guava 33.4.1. Those release notes contain information about the effects of Guava 33.4.5 and higher on the module system.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.6-jre</version>
<!-- or, for Android: -->
<version>33.4.6-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Removed the extra copy of each class from the Guava jar. The extra copies were an accidental addition from the modularization work in Guava 33.4.5. (40485b93ce)
- Fixed annotation-related warnings when using Guava in modular builds. The most common such warning is
Cannot find annotation method 'value()' in type 'DoNotMock': .... (7e15ab3566)
33.4.2
This is one of a series of releases that improve Guava's nullness annotations. For more information, including troubleshooting help, see the release notes for Guava 33.4.1. Most users can update directly to Guava 33.4.8.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.2-jre</version>
<!-- or, for Android: -->
<version>33.4.2-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Changed
@ParametricNullnessinto a no-op for Kotlin and IntelliJ. Before now, it was forcing many usages of type variables to have platform types, which meant that Kotlin couldn't check those usages for nullness errors. With this change, Kotlin can detect more errors. (ae36f571a2)
33.4.4
This is one of a series of releases that improve Guava's nullness annotations. For more information, including troubleshooting help, see the release notes for Guava 33.4.1. Most users can update directly to Guava 33.4.8.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.4-jre</version>
<!-- or, for Android: -->
<version>33.4.4-android</version>
</dependency>
Guava requires one runtime dependency, which you can download here:
- Migrated from Checker Framework annotations to JSpecify annotations. (2cc8c5eddb)
- Made our usages of nullness annotations available in our GWT artifact. GWT users will need to upgrade to GWT 2.12.1, which makes GWT as tolerant of Java 8 type-use annotations as it is of other annotations. (80559d250e)