Skip to content

Releases: google/guava

33.7.2

Choose a tag to compare

@cpovirk cpovirk released this 29 Sep 14:53

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

33.7.1

Choose a tag to compare

@cpovirk cpovirk released this 18 Aug 03:54

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

Choose a tag to compare

@cpovirk cpovirk released this 17 Aug 14:52

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.class is now present at the root of the jar instead of under a multi-release root. This prevents the jar from containing a file at META-INF/versions/9/OSGI-INF/MANIFEST.MF, which occasionally causes trouble for some users. (230019b)
  • Our Android minSdkVersion is 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 some ImmutableMap implementations to create a new, lightweight object on each call to view methods like keySet(), 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 calling asMultimap().inverse() on the same ImmutableMap instance. (e87d019)
  • net: Added HttpHeaders constant for on-prefetch-activation. (abd06a3)
  • net: Added MediaType constants for application/yaml and application/x-pem-file. (a8e9533, 1d40e27)
  • util.concurrent: Fixed ExecutionSequencer queue stall when delegate executor throws RejectedExecutionException. (8410194)

33.6.0

Choose a tag to compare

@cpovirk cpovirk released this 14 Apr 19:18

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() to PhantomReference in preparation for the removal of finalization. (786b619, 7c6b17c, aeef909)
  • cache: Deprecated CacheBuilder APIs that use TimeUnit in favor of those that use Duration. (73f8b0b)
  • collect: Added toImmutableSortedMap collectors that use the natural comparator. (64d70b9)
  • collect: Changed ConcurrentHashMultiset, ImmutableMultimap, and TreeMultiset deserialization to avoid mutating final fields. 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 throws NullPointerException when used. (8240c7e, 0464680)
  • graph: Removed @Beta from all APIs in the package. (dae9566)
  • graph: Added support to Graphs.transitiveClosure() for different strategies for adding self-loops. (2e13df2)
  • graph: Added an asNetwork() view to Graph and ValueGraph. (909c593)
  • hash: Added BloomFilter.serializedSize(). (df9bcc2)
  • net: Added HttpHeaders.CDN_CACHE_CONTROL. (75331b5)

33.5.0

Choose a tag to compare

@cpovirk cpovirk released this 17 Sep 21:05

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-Name to guava-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 release guava-gwt for 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 minSdkVersion to 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 in Cache.asMap(). (We do still recommend using Caffeine rather than com.google.common.cache.) (087f2c4)
  • collect: Improved Iterators.mergeSorted() to preserve stability for equal elements. (4dc93be)
  • math: Added saturatedAbs methods to IntMath and LongMath. (ed0e518)
  • net: Added image/avif to MediaType. (53344ca)
  • testing: Made CollectorTester available to Android users. (294c251)
  • util.concurrent: Added Striped.custom. (1586eb2)

33.4.8

Choose a tag to compare

@cpovirk cpovirk released this 14 Apr 18:08

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 our VarHandle code from guava-android. While the code was never used at runtime under Android, it was causing problems under the Android Gradle Plugin with a minSdkVersion below 26. To continue to avoid sun.misc.Unsafe under the JVM, guava-android will now always use AtomicReferenceFieldUpdater when run there. (75da924)

33.4.7

Choose a tag to compare

@cpovirk cpovirk released this 08 Apr 13:32

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 guava module's dependency on failureaccess to be transitive. Also, modified the guava-testlib module to make its dependency on guava transitive, to remove its dependency on failureaccess, and to add a dependency (transitive) on junit. (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 the guava-android copy of AbstractFuture to try VarHandle before Unsafe, eliminating a warning under newer JDKs. (7336af1)

33.4.6

Choose a tag to compare

@cpovirk cpovirk released this 25 Mar 16:47

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

Choose a tag to compare

@cpovirk cpovirk released this 19 Mar 22:38

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:

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

Special thanks to @sgammon for his modularization efforts.

33.4.4

Choose a tag to compare

@cpovirk cpovirk released this 19 Mar 22:38

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)