All Versions
13
Latest Version
Avg Release Cycle
97 days
Latest Release
371 days ago

Changelog History
Page 1

  • v30.0 Changes

    October 16, 2020

    Maven

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

    Javadoc

    JDiff

    ๐Ÿ”„ Changelog

    • Guava types can no longer be sent over GWT-RPC. Even the earlier, temporary way to reenable support (guava.gwt.emergency_reenable_rpc) no longer has an effect. (0cb89dd)
    • ๐Ÿ›  cache: Fixed memory leak in LocalCache under j2objc. (5e519d9)
    • collect: Added two-element min and max methods to Comparators. (958186c)
    • ๐Ÿšš collect: Removed @Beta from Multimaps.toMultimap. (b6b4dc4)
    • collect: Made the set returned by ImmutableMap<K, V>.keySet() serializable as long as K is serializable, even if V is not (and similarly for values()). (f5a69c3)
    • ๐Ÿ›  collect: Fixed bug in powerSet.equals(otherPowerSet) would erroneously return false if the two power sets' underlying sets were equal but had a different iteration order. (215b1f0)
    • collect: Eliminated j2objc retain-cycle in SingletonImmutableBiMap. (0ad38b8)
    • eventbus: Prevented @Subscribe from being applied to a method that takes a primitive, as that will never be called. (554546c)
    • โšก๏ธ graph: Made Traverser.breadthFirst() lazier, and optimized Traverser more generally. (32f2d77, b5210ca)
    • graph: Added @DoNotMock to Traverser. (6410f18)
    • ๐Ÿ—„ io: Deprecated Files.createTempDir(). (fec0dbc) (CVE forthcoming)
    • โฌ†๏ธ io: Upgraded ByteStreams.copy(InputStream, OutputStream) to use the faster FileChannel if possible. (a1e9a0b)
    • math: Added roundToDouble to BigDecimalMath, BigIntegerMath, and LongMath. (bee4f3c, 2b5c096, 633abf2)
    • net: Added MediaType constants for several font/ types. (571cf66)
    • net: Added HttpHeaders constants for Cross-Origin-Embedder-Policy(-Report-Only)?. (c3bf731)
    • โœ… testing: Made EqualsTester test that non-String objects are not equal to their String representations. (c9570ea)
    • util.concurrent: Added ClosingFuture. (52e048e)
    • ๐Ÿšš util.concurrent: Removed the deprecated 1-arg ServiceManager.addListener(Listener). Use the 2-arg addListener(Listener, Executor) overload, setting the executor to directExecutor() for equivalent behavior. (dfb0001)
    • util.concurrent: Changed AbstractFuture.toString() to no longer include the toString() of the result. (2ebf27f)
    • util.concurrent: Added awaitTerminationUninterruptibly. (f07b954)
  • v29.0 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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)