Guava: Google Core Libraries for Java v30.0 Release Notes

Release Date: 2020-10-16 // almost 4 years ago
  • 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)

Previous changes from v29.0

  • 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)