All Versions
12
Latest Version
Avg Release Cycle
85 days
Latest Release
42 days ago

Changelog History
Page 1

  • v29.0

    April 13, 2020

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>29.0-jre\</version\> \<!-- or, for Android: --\> \<version\>29.0-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • Guava types can no longer be sent over GWT-RPC. To temporarily reenable support, set the guava.gwt.emergency_reenable_rpc system property to true. (5214a10)
      • This is the only breaking change in this release, and it affects only users of the guava-gwt artifact, not people who use only the guava artifact. This release contains no changes that break binary compatibility for any users.
    • 📚 API documentation for Guava classes is now easier to reach. For example, for ImmutableList, visit guava.dev/ImmutableList. Also, more easily access the index at guava.dev/api.
    • collect: Annotated FluentIterable.from(FluentIterable) with @DoNotCall. (b1c77b7)
    • collect: Made ceiling, floor, headSet(E, boolean), and tailSet(E, boolean) methods available in the GWT-emulated ImmutableSortedSet. (7e0fe90, 5f2fbf2)
    • 🏗 graph: Made it possible to set a stable incident edge order by calling the newly added method [Value]Graph.Builder.incidentEdgeOrder(ElementOrder.stable()). (7016402)
    • graph: Added incidentEdgeOrder() to the [Value]Graph interfaces. (cde576e)
    • util.concurrent: Added Duration-based default methods to ListeningScheduledExecutorService. (931e83f)
    • util.concurrent: Added immediateVoidFuture. (9f3bae5)
    • 🚚 util.concurrent: Removed @Beta from Service and related classes. (dc46627)
    • 🗄 util.concurrent: Deprecated the 1-arg overload of ServiceManager.addListener. (86e3620)
    • util.concurrent: Changed the return type of ServiceManager.servicesByState() to ImmutableSetMultimap (but also retained a method with the old signature for binary compatibility). (31999ae)
    • 🔒 util.concurrent: Made it safe to load the AbstractFuture class from a ForkJoinPool thread under a security manager. (6e0c5b5)
  • v28.2

    December 27, 2019

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>28.2-jre\</version\> \<!-- or, for Android: --\> \<version\>28.2-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • _ Warning to users of GWT-RPC: _ The first Guava release of 2020 will remove support for GWT-serializing Guava types. To test ahead of time with GWT-RPC support for Guava types disabled, set the guava.gwt.emergency_reenable_rpc system property to false. (Even without the system property enabled, apps will now log warnings when sending Guava types over GWT-RPC.) (08bbf53)
    • base: Added Splitter.splitToStream().
    • concurrent: Added Futures.submit() (c7ef0cc)
    • concurrent: Made platformThreadFactory() and related utilities (mainly *Service) work under Java 11 App Engine, and tweaked other App Engine threading behavior. (e3ee00d)
    • concurrent: Added catch to StackOverflowError in AbstractFuture.toString to prevent long chains of futures from failing toString calls. (a2e6acc)
    • 0️⃣ concurrent: Made ListenableFuture implement Thenable via a default interface method in GWT/j2cl (e0bac74).
    • 🛠 graph: Fixed bug in AbstractNetwork.hasEdgeConnecting() causing it to throw if either endpoint was not in the graph. Originally reported as #3721. (2ee7f9d)
    • 🛠 graph: Fixed data race. (0e94fb5)
    • 👍 math: Added Stream support to Stats and StatsAccumulator. (e2f4eba)
    • math: Added Quantiles compute() methods which return a Map now return a map with entries in the same order in which the indexes were provided. (786c3d8)
    • 👍 net: Added support for scope IDs for IPv6 addresses. (8a7d36a)
    • net: Added toBigInteger and fromIpv4BigInteger/fromIpv6BigInteger to InetAddresses for manipulating InetAddresses as BigIntegers (d7a0b3d)
    • net: Added MediaType constants for application/opensearchdescription+xml (f79c4fe) and MPEG-DASH (67dd062), as well as a constant for the header Cross-Origin-Opener-Policy (4ef2111).
    • net: Made MediaType reject empty type, subtype, and attribute (b080067) and non-ASCII parameter values (2278123). Also, made it serialize empty parameter values to quoted strings (2278123).
    • ➕ Added @DoNotMock to several types. (4eea0f7, add4309)
    • ✂ Removed dependency on animal-sniffer-annotations. (5f37e53)
  • v28.1

    August 28, 2019

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>28.1-jre\</version\> \<!-- or, for Android: --\> \<version\>28.1-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • 🔀 collect: Added RangeMap.merge, analogous to Map.merge. (687252d)
    • 🏗 collect: Fixed a bug in ImmutableSet.Builder that could lead to infinite loops when building multiple sets from the same builder. (0007cb2)
    • 👀 io: Fixed an issue where the InputStream returned by BaseEncoding.decodingStream(Reader) could fail to throw DecodingException while decoding an invalid string. (ddd4a49)
    • net: Added MediaType for "image/heif" and "image/jp2" (508696a)
    • ⬆️ net: Added Upgrade-Insecure-Requests header to HttpHeaders. (6a8b716)
    • 🛠 concurrent: Fixed potential memory leak in Futures.whenAllSucceed/whenAllComplete (494834b)
  • v28.0

    June 12, 2019

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>28.0-jre\</version\> \<!-- or, for Android: --\> \<version\>28.0-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • collect: Added Duration-based overloads to some Queues methods. (21d06cf)
    • net: Added MediaType for "application/geo+json". (36cd5cf)
    • net: Added a number of constants to HttpHeaders.
    • 🚚 concurrent: Removed deprecated CheckedFuture and related utilities. (3dd22fe)
    • concurrent: Added Duration-based overloads to many methods.
    • 🚚 concurrent: Removed @Beta from setFuture. (5ec1360)
    • 🗄 concurrent: Added deprecated FluentFuture.from(FluentFuture) to point out redundant code. (f9f2807)
    • 🏗 graph: Added GraphBuilder.immutable(),ValueGraphBuilder.immutable() and NetworkBuilder.immutable() for building immutable graphs in a fluent way.
    • 🛠 J2ObjC: Fixed crashes from use of ImmutableMap.entrySet(). (74fc49f)
  • v27.1

    March 08, 2019

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>27.1-jre\</version\> \<!-- or, for Android: --\> \<version\>27.1-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • ✂ Removed GWT emulations that are no longer needed as of GWT 2.8.2. This means that GWT projects that use this version of Guava must use GWT 2.8.2 or higher. (5f35072)
    • Created a BOM for Guava (new guava-bom artifact). (0e59641)
    • ✂ Removed @Beta from a number of frequently used APIs. (6242bdd)
    • net: Added Sec-Fetch headers to HttpHeaders. (673b243)
    • net: Added SourceMap header to HttpHeaders (a99c15f)
    • net: Added MediaType for "application/jose" and "application/jose+json". (d416e04)
    • graph: Added overloads to methods accepting pairs of nodes to also accept EndpointPair; changed behavior of *Graph.edges().contains() to allow undirected graphs to accept ordered EndpointPairs. (af3ee1c)
  • v27.0.1

    November 19, 2018

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>27.0.1-jre\</version\> \<!-- or, for Android: --\> \<version\>27.0.1-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • 🛠 Fixes an issue where classes that should only be included in failureaccess (Guava's one dependency) were also being included in the main Guava jar. (4d4a676)
    • 📇 Updates the version of failureaccess that Guava depends on to 1.0.1, which includes OSGi metadata. (7aae5f3)
  • v27.0

    October 18, 2018

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>27.0-jre\</version\> \<!-- or, for Android: --\> \<version\>27.0-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    Important: ListenableFuture is now available as a separate artifact (com.google.guava:listenablefuture:1.0) from the rest of Guava. As part of that change, Guava now has a real (needed at runtime) dependency on com.google.guava:failureaccess:1.0. For more details, see this announcement. (b62d529)

    • collect: Added a gap(Range) method to Range that computes the Range that lies between them. (a9dd709)
    • net: Added HttpHeaders.EARLY_DATA. (e074cf1)
    • net: Added MediaType.WASM_APPLICATION. (0b3eb0f)
    • concurrent: AbstractFuture doesn't expose FluentFuture APIs anymore. (0f8d360)
    • concurrent: Added doCancelStart protected method to AbstractService (27bfe41)
  • v26.0

    August 01, 2018

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>26.0-jre\</version\> \<!-- or, for Android: --\> \<version\>26.0-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • 🚚 base: Removed deprecated public static fields from CharMatcher. Use the equivalent public static methods instead. (f1249c4)
    • 🛠 base: Fixed the ServiceConfigurationError that some users encountered when using Guava as a JPMS module. (8287cdf)
    • 🛠 cache: Fixed a bug where Cache.asMap.compute* methods could cause nonsensical weights to be stored, breaking cache eviction. (15764d7)
    • 🚚 concurrent: Removed deprecated Futures methods that implicitly use directExecutor(). (87d87f5)
    • concurrent: Added ExecutionSequencer, a new utility to run a series of asynchronous operations serially. (8d1fbc9)
    • 🚚 concurrent: Removed special-casing UndeclaredThrowableException in Futures.transform(). (9466b62)
    • net: Changed HostAndPort.equals() and hashCode() to stop depending on whether brackets were included. Now they depend only on host and port. (34c1616)
    • 📇 net: Added HttpHeaders constant for Sec-Metadata header. (986a3a3)
    • net: Added MediaType for "application/hal+json". (fea88fe)
  • v25.1

    May 31, 2018

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>25.1-jre\</version\> \<!-- or, for Android: --\> \<version\>25.1-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🔄 Changelog

    • Switched to the type annotation version of @Nullable in the JRE/Java 8 flavor. (0a2258e)
    • base: Added Strings.lenientFormat(), copied from Preconditions.format(). (7fe1702)
    • net: Added Token Binding HTTP headers to HttpHeaders. (d9113d5)
    • reflect: Added overrides for methods on JDK types returning AnnotatedType in the JRE/Java 8 flavor. (d94eb93)
    • testing: Added support for type annotations in NullPointerTester in the JRE/Java 8 flavor. (d94eb93)
    • util.concurrent: Added @DoNotCall to Futures methods that do not accept an Executor in preparation for removal. (49a1df6)
  • v24.1.1

    April 26, 2018

    🚀 Note that we've also released Guava 25.0, which contains the change in 24.1.1 and some additional changes.

    Maven

    \<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>24.1.1-jre\</version\> \<!-- or, for Android: --\> \<version\>24.1.1-android\</version\> \</dependency\>
    

    Javadoc

    JDiff

    🆕 (There are no API diffs from 24.1. Our release tooling generated the following diffs against the newer 25.0, which doesn't really make sense. We'll try to get that fixed for future patch releases.)

    🔄 Changelog

    • 🛠 Fixed Denial of Service vulnerability for servers that use Guava and deserialize attacker data: CVE-2018-10237. (7ec8718)