gRPC Java 1.85.0 Release Notes
API Changes
- netty: Support never-indexed metadata keys (#12976) (e9a8c2b). High-cardinality metadata values provide little compression benefit and can churn the server's dynamic HPACK table. Adds
NettyChannelBuilder.neverIndexMetadataKey()andneverIndexMetadataKeys() so callers can mark selected outbound metadata keys for HPACK's never-indexed literal representation. - binder: Add Context-based
hasPermissions()toSecurityPoliciesand deprecate thePackageManagerversion.
Behavior Changes
- xds: allow wildcard listener port in LDS (5fda0c7). It now accepts a port of 0 in the LDS listener address as matching any port.
Bug Fixes
- xds: Make RawMessageClientInterceptor conditional on ext_proc flags (#13015) (e58489f). Fixes a bug that caused empty payloads on retry attempts for regular xDS channels.
- core: Reset configSelector on realChannel while entering IDLE state (#12832) (fc43144). Because of a bug in the config selector, when ManagedChannel entered IDLE state due to resource deletion on the xDS control plane, the channel stayed stuck in IDLE state even after the resource came back online and a new rpc was executed.
- core: Gracefully handle GOAWAY frames with unrecognized error codes (#13035) (b3ae801). When a server or proxy sent a GOAWAY with an unrecognized HTTP/2 error code, such as 70007 from Apache httpd, Netty transport clients logged
NullPointerException: Http2Error cannot be null for GOAWAYand RPCs could hang until their deadline. Such codes are now treated as INTERNAL_ERROR, so the transport shuts down cleanly.
Improvements
- netty: make hostname verification configurable (#13002) (2858db2). This configures HTTPS endpoint identification in GrpcSslContexts and updates ClientTlsHandler to preserve an explicit empty-string opt-out. A null algorithm still falls back to HTTPS, retaining hostname verification for custom contexts that do not select an algorithm.
- bazel: Adopt proto_lang_toolchain for java_grpc_library() (#12994) (c9ee3f8).
java_grpc_libraryandjava_lite_grpc_librarynow invoke protoc through Protobuf'sproto_lang_toolchaininstead of always using@com_google_protobuf//:protoc. They now use the same protoc and protoc options asjava_proto_library.
New Features
- api: Implement custom events framework in gRPC-Java server (#12980) (dd00881). This adds triggerEvent/onEvent APIs to
ServerCallandServerCall.Listener. This allows events to be triggered on theServerCalland be delivered as a listener callback.
Dependencies
- Upgrade protobuf for bazel from 36.0 to 36.0.bcr.1 (#13013) (9799887)
- netty: Upgrade Netty to 4.2.17 (#13036) (61b910b). netty-tcnative remains at 2.0.81.
Documentation