gRPC Java 1.36.0 released

Skip to first unread message

Eric Anderson

Feb 23, 2021, 8:14:14 PMFeb 23
to grpc-io
gRPC Java 1.36.0 is released and should be available on Maven Central and JCenter.

API Changes

  • Added .class file hack to ease removal of internal ABIs (#7834). This does not impact source code (API); it only impacts code compiled with a different version of gRPC than it runs with (ABI). Users of the transport-specific and experimental channel/server builders (NettyChannelBuilderNettyServerBuilderOkHttpChannelBuilderInProcessChannelBuilderCronetChannelBuilder) are commonly referencing internal ABIs due to overly-specific generics in gRPC. There is now a .class file hack in place which preserves ABI compatibility for old builds while causing javac to use the intended public API for new builds. In a future release we will remove the internal ABI for these experimental APIs (#7211) which may cause runtime failures. Recompiling with this release or later will prevent your code from using those ABIs and so you will not be impacted by the ABI removal. This is related to the temporary ABI breakage in v1.33.0.
  • Deleted deprecated LoadBalancer.Helper APIs as they had been deprecated since v1.22 release (#7793).
  • Deprecated LoadBalancer.Helper.createResolvingOobChannelBuilder(String target) in favor of the new experimental API createResolvingOobChannelBuilder(String target, ChannelCredentials creds). The two APIs differ not only in signature but also in the default authority of the returned builder. See their javadoc for more detail.

Behavior Changes

  • ManagedChannelBuilder.overrideAuthority() is now used even if the NameResolver uses EquivalentAddressGroup.ATTR_AUTHORITY_OVERRIDE. Previously the NameResolver’s override would be used
  • grpclb: keep RR Subchannel state in TRANSIENT_FAILURE until becoming READY (#7816). This enhancement was previously made to the round_robin policy, but now also applies to grpclb
  • netty: On server-side, stop logging expected STREAM_CLOSED exceptions. This reduces log pollution

New Features

  • services: Add support for grpc.channelz.v1.Channelz.GetServer, as defined in channelz.proto
  • xds: support reading bootstrap config directly from env var (GRPC_XDS_BOOTSTRAP_CONFIG) or system property (io.grpc.xds.bootstrapValue) values
  • alts: Introduce AltsContext to allow outside packages access to ALTS peer information

Bug Fixes

  • core: Fixed a bug where RPCs queued waiting for a connection can use user-provided executors after the ManagedChannel is terminated (#6283)
  • core: Fixed a bug where RPCs queued waiting on CallCredentials can use user-provided executors after the ManagedChannel is terminated (#7813)


  • api: add nullable annotation to Status.trailersFromThrowable (#7856). The annotation doesn’t change behavior, it just makes the behavior more clear


  • alts: Remove dependency on Apache Commons Lang
Reply all
Reply to author
0 new messages