Byte Buddy 1.18.13
- Actually include the SBOM within the published artifacts.
- Avoid propagation of path traversals that are contained in jar files which are copied without transformation.
- Avoid repeated traversal of previously visited type hierarchies to improve performance.
- Correct Kotlin support of the Gradle plugin to redirect the classes directory of a source set while retaining support for legacy Gradle versions.
- Create Gradle tasks using Gradle's task registration API if available.
V1.84.0
In this release we drop support for Android API level 23 or lower (Marshmallow or earlier), following Google Play Service’s now requiring a minimum of API level 24 (Android 7.0 Nougat).
- xds: Supports injecting custom LDS Resource Name Resolvers (#12925) (ac02c6f37)
- xds: Add support for creating
XdsServerBuilderwithSocketAddresses (#12925) (ac02c6f37) - api: Add a Supplier overload to Context (#12935) (696653600)
- core: update SPIFFE certificate extraction to comply with X509-SVID spec (#12961) (96807d898)
Ignore all but the first certificate if the x5c JWK parameter contains multiple values.
Skip the JWK entry instead of stopping execution or throwing when x5c is missing or contains an empty list, complying with the requirement that entries without x5c must be ignored.
- core: reference-count shared transport factory for OOB channels (#12985) (72c6e5f91)
Fixes a bug whereby an OOB channel shutdown incorrectly shut down the shared transport factory with the main channel, and the main channel was unable to create subchannels anymore and faced an exception in doing so. - xds: Fix
shutdownNow()becoming a no-op aftershutdown()(#12982) (3cb700719) - xds: Add Http11ProxyUpstreamTransport to MessagePrinter (#12971) (d49a589f4)
- core, xds: Append child channel configurators instead of overwriting (#12921) (296c007c1) Chains multiple childChannelConfigurator() calls instead of overwriting them in ManagedChannelImplBuilder and XdsServerBuilder, ensuring all configurators are preserved and executed when child channels are created.
- rls: Implement stale_header_data caching and propagation in RLS (#12972) (7843bd437) Caches header_data received in RouteLookupResponse and sends it back as stale_header_data in RouteLookupRequest when refreshing stale cache entries, complying with the RLS specification.
- netty: Fix client-initiated stream limit bypass in NettyServerHandler (#12933) (56205f91c) Configure max active streams limit directly upon
DefaultHttp2Connectioninitialization. BecauseNettyServerHandlerinstantiatesDefaultHttp2Connectiondirectly rather than using Netty'sAbstractHttp2ConnectionHandlerBuilder, it missed Netty's built-in CVE-2026-47244 patch. This left a pre-handshake window where the server's local connection allowed up to Integer.MAX_VALUE active client-initiated streams until a SETTINGS_ACK was received. Enforcing the limit proactively at startup closes this vulnerability window and prevents client-initiated stream floods / resource exhaustion. - servlet:
AsyncServletOutputStreamWriterdetect and handle write when not ready (#12732) (46f308051) In highly concurrent scenarios, cached servlet container ready to write state can become stale. The servlet container may have already transitioned to a 'not ready' state, but the corresponding callback has not yet updated gRPC's internal state. This fix makes the ready state to be evaluated explicitly before attempting to write directly to the servlet output stream. - okhttp: Move connection window update before stream termination logic (#12990) (0f859c3bb) By RFC 9113, section 6.9, receivers must take frames into account for flow control even if they're errored. This change moves the stream error response logic after connection window updates
- core: Coalesce Contiguous Small Buffers for ReadableBuffer to prevent OOM (#12924) (0585d481a)
- s2a: Default to Post Quantum Cryptography key exchange group (#12894) (bc01994b7)
- binder: Let servers load their SecurityPolicy asynchronously (9fdef96dc)
- binder: normalize failed auth future status message (9ffa1e1b7)
- compiler: Update maximum supported edition to EDITION_2026 (#12945) (6ccd0658e). Update the maximum supported edition in the Java gRPC compiler plugin to EDITION_2026 when compiling against Protobuf version 7.35.0 (v35.0) or later.
- api: Bump Context to JDK 8 (5d0a012fa)
- netty: Upgrade Netty to 4.2.16 and netty-tcnative to 2.0.81 (#12969) (1bc2f5a34)
- api: Better explain the executors and how to configure them (ee08f5337)
- core, opentelemetry: Implement LB Delay Observability (Proposal A121) (#12807) (073fd5ea1) Implements attempt-level RPC delay observability across the core delayed transport, built-in load balancers (pick_first, round_robin), RLS, and xDS policies, aligned with gRFC A121. Adds LoadBalancer.PickResult.withNoResult(delayType, delayReason) and delay tracing callbacks on ClientStreamTracer. Records attempt delay duration metrics (grpc.client.attempt.delay.duration) and child tracing spans ("Attempt Delay") via the OpenTelemetry plugin.
@Zhengcy05 @carl-mastrangelo @themechbro @JasonLunn @martinbaillie @eado @TimurRakhmatullin86