github grpc/grpc-java v1.16.0

latest releases: v1.63.1, v1.64.0, v1.63.0...
5 years ago

Important notice

This version had an inadvertent ABI breakage in the @ExperimentalApi CallCredentials. Please use v1.16.1 instead.

Dependencies

  • Updated to Guava 26.0-android and jsr305 3.0.2
  • Updated to Netty 4.1.30 and Netty tcnative 2.0.17

Bug Fixes

  • core: DnsNameResolver cache for SRV records (as seen in 1.15.1) is reverted due to issues on Android devices, even when SRV lookup was disabled (#4988)
  • grpc-core and grpc-okhttp now use Java 7 bytecode instead of Java 6 bytecode. If this causes you issue, please file an issue
  • core: Propagate UnknownHostException when DNS fails instead of ignoring the failure. This improves the error message from “UNAVAILABLE: NameResolver returned an empty list”
  • okhttp: settings acks back after apply settings before sending any data. Fixes #4809. If you are seeing "INTERNAL: Flow control error\nRst Stream", then you were likely impacted
  • cronet: Correctly notify ClientStreamTracer.outboundHeaders() (#4768)
  • services: binary log config strings cause throw an error if ambiguous (#4868)
  • core: fixed NPE when getAuthority() is called on a channel that has shut down (#4886)

New Features

  • core: Attributes getters and Keys now have annotations to make them easier to discover. See the Attributes documentation for more information (#4892)
  • core: Added Grpc.TRANSPORT_ATTR_LOCAL_ADDR for accessing the connection’s local address via ClientCall/ServerCall.getAttributes() (#4906)

API Changes

  • core: the CallCredentials API is going through an API incompatible change, scheduled for next release. Implementations are encouraged to migrate to implementing CallCredentials2 to avoid breakage next release, although at some point in the future CallCredentials2 will be removed. Consumers of CallCredentials are NOT affected. (#4902) See #4901 for the migration roadmap and further details
  • protobuf: Added ProtoUtils.setExtensionRegistry() for decoding. This should be preferred over ProtoLiteUtils.setExtensionRegistry() when using full protobuf, since the shared configuration between ProtoUtils and ProtoLiteUtils is an implementation detail
  • netty: NettyChannelBuilder.localSocketPicker() can be used to bind to a specific local address
    services: Binary logs moved from v1alpha to v1 of binary logging proto, this is an incompatible format change (#4846)

API Stabilization

  • core: Stabilized AbstractStub.withExecutor

Behavior Changes

  • core: channel tracing now records events for load balancing policy change
  • okhttp: AsyncFrameWriter log quietly when socket is already closed, also default log level is INFO for AsyncFrameWriter#close. This reduces log spam (#4927)
  • core: remove redundant SubchannelPicker refreshes in RoundRobinLoadBalancer. This avoids resetting the current round robin index when unnecessary, providing smoother load distribution
  • core: ignore localhost and IP addresses for SRV and TXT DNS lookups. Looking up SRV and TXT records is still disabled by default
  • alts: fail calls when using ALTS if not running on Google Cloud Platform (#4807)

Acknowledgements

Thanks to all our external contributors:

Don't miss a new grpc-java release

NewReleases is sending notifications on new releases.