Repository navigation
Releases: google/guava
Release list
33.7.2
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.7.2-jreversion>
<version>33.7.2-androidversion>
dependency>Jar files
Guava requires
one runtime dependency,
which you can download here:
Javadoc
JDiff
Changelog
collect: ChangedMapMaker,CompactHashMap, andCompactHashSetdeserialization to avoid eagerly allocating as much memory as a serialization payload requests. (a0d0c36)
33.7.1
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.7.1-jreversion>
<version>33.7.1-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
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
Newly introduced problem for Java 9 and Java 10 only
Guava 33.7.0 includes a Multi-Release line in its jar manifest, even though it is no longer a multi-release jar. This causes some problems with tools from Java 9 and Java 10. The issue is fixed in version 33.7.1. Sorry for the trouble.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.7.0-jreversion>
<version>33.7.0-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- The Android jar now contains our Proguard configs. (b0668e7)
- 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. (230019b) - 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. (ea0af87) 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. (e87d019)net: AddedHttpHeadersconstant foron-prefetch-activation. (abd06a3)net: AddedMediaTypeconstants forapplication/yamlandapplication/x-pem-file. (a8e9533, 1d40e27)util.concurrent: FixedExecutionSequencerqueue stall when delegate executor throwsRejectedExecutionException. (8410194)
33.6.0
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.6.0-jreversion>
<version>33.6.0-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- Migrated some classes from
finalize()toPhantomReferencein preparation for the removal of finalization. (786b619, 7c6b17c, aeef909) cache: DeprecatedCacheBuilderAPIs that useTimeUnitin favor of those that useDuration. (73f8b0b)collect: AddedtoImmutableSortedMapcollectors that use the natural comparator. (64d70b9)collect: ChangedConcurrentHashMultiset,ImmutableMultimap, andTreeMultisetdeserialization 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. (8240c7e, 0464680)graph: Removed@Betafrom all APIs in the package. (dae9566)graph: Added support toGraphs.transitiveClosure()for different strategies for adding self-loops. (2e13df2)graph: Added anasNetwork()view toGraphandValueGraph. (909c593)hash: AddedBloomFilter.serializedSize(). (df9bcc2)net: AddedHttpHeaders.CDN_CACHE_CONTROL. (75331b5)
33.5.0
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.5.0-jreversion>
<version>33.5.0-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- Restored the
Automatic-Module-Nametoguava-android. (It, unlike,guava-jre, is not a proper module.) (7a04a8a) - 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. (5c23347) - Listed the JSpecify annotations as an optional dependency in our OSGi metadata. (2dfd572)
cache: Improved the handling of exceptions from compute functions inCache.asMap(). (We do still recommend using Caffeine rather thancom.google.common.cache.) (087f2c4)collect: ImprovedIterators.mergeSorted()to preserve stability for equal elements. (4dc93be)math: AddedsaturatedAbsmethods toIntMathandLongMath. (ed0e518)net: Addedimage/aviftoMediaType. (53344ca)testing: MadeCollectorTesteravailable to Android users. (294c251)util.concurrent: AddedStriped.custom. (1586eb2)
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.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.4.8-jreversion>
<version>33.4.8-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
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. (75da924)
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.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.4.7-jreversion>
<version>33.4.7-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- 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. (63ecdf2) 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. (b8dcaed, f9eff73)util.concurrent: Changed theguava-androidcopy ofAbstractFutureto tryVarHandlebeforeUnsafe, eliminating a warning under newer JDKs. (7336af1)
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.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.4.6-jreversion>
<version>33.4.6-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- 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. (40485b9)
- Fixed annotation-related warnings when using Guava in modular builds. The most common such warning is
Cannot find annotation method 'value()' in type 'DoNotMock': .... (7e15ab3)
33.4.5
Use Guava 33.4.8, not Guava 33.4.5. 33.4.5 was our first attempt to modularize Guava, but we misconfigured our build, so it:
- contains an extra copy of each of its classes
- does not declare its dependencies on artifacts of annotations
33.4.5 (and 33.4.6) also may cause trouble for some optimizers (like those commonly used for Android apps), and 33.4.7 breaks the build of Android apps with a minSdkVersion below 26.
All these issues are fixed by release 33.4.8. Sorry for the trouble.
When you read the release notes for 33.4.8, you should also read the release notes for Guava 33.4.1, even if you're not upgrading from Guava 33.4.0 or earlier: Those release notes contain information about the effect of Guava 33.4.5 and higher on the module system.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.4.5-jreversion>
<version>33.4.5-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- Changed the Guava jar (plus
guava-testlibandfailureaccessjars) to be a modular jar. (7a71ea0, 287c701) - Changed various classes to stop using
sun.misc.Unsafeunder Java 9+. (ee63055, 80aab00, 400af25, 71d0692, d1a3cd5, b3bb29a, 1a300f6)- Note that, if you use
guava-androidon the JVM (instead of usingguava-jre), Guava will still try to usesun.misc.Unsafe. We will do further work on this in the future.
- Note that, if you use
- Belatedly updated the Public Suffix List data. (ee3b9c6, d25d62f)
Special thanks to @sgammon for his modularization efforts.
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.
Maven
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>33.4.4-jreversion>
<version>33.4.4-androidversion>
dependency>Jar files
Guava requires one runtime dependency, which you can download here:
Javadoc
JDiff
Changelog
- Migrated from Checker Framework annotations to JSpecify annotations. (2cc8c5e)
- 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. (80559d2)