v1.41.0
For users requiring Java 7, the later grpc-java 1.44 release dropped support for Java 7. This v1.41.x branch is the selected gathering point for users continuing to require Java 7. See gRFC P5.
API Changes
- stub: Mark Stub-based MetadataUtils methods deprecated (#8395). The interceptor-based versions have been stable for a long time and are preferred
Bug Fixes
- census: Fixed a data race in CensusStatsModule which in rare cases may cause NullPointerException (#8459)
- xds: Fixed a bug in SharedCallCounterMap which in rare cases may cause NullPointerException (#8397)
- core:
ServerCall.isCancelled()
andServerCallStreamObserver.isCancelled()
implementations no longer incorrectly return true at the end of every RPC (#8408) - core: ManagedChannel no longer immediately exits idle mode after an
enterIdle()
call when it has any calls in progress - netty-shaded: Modify the shading operation to transform native-image resources so they correctly reference shaded class names (#7540)
- netty-shaded: Rename native-image resources to avoid collisions with Netty’s copy, which were modified starting in 1.39.0
- rls: avoid NullPointerException in RLS in certain circumstances when calling
channel.getState(true)
or if a parent load balancer requests a connection (#8379)
New Features
- xds: xDS-based TLS security (gRFC 29) is now stable
- util: Added new classes AdvancedTlsX509TrustManager and AdvancedTlsX509KeyManager, which support reloading keys and trust roots as they change. They also can make custom verification easier by handling the hostname verification. (#8175)
- xds: Added
XdsNameResolverProvider.createForTest()
to allow using a different bootstrap configuration in tests (#8358)
Behavior Changes
- rls: migrated the deprecated server and path fields in RouteLookupRequest to using the new extra_keys field in RLS config
Improvements
- api: Document that NameResolvers shouldn’t block within their methods (#8398). The offload executor should be used for blocking operations
- stub: Document StreamObserver is an async API, and how it internally may buffer (#8449)
Dependencies
- Upgraded error_prone_annotations to 2.9.0
- cronet: Cronet upgraded to version 92.4515.131