The v1.64.0 release <https://github.com/grpc/grpc-java/releases/tag/v1.64.0> 
of gRPC-Java is now available!


API Changes
   
   - compiler: the option jakarta_omit was renamed @generated=omit (#11086 
   <https://github.com/grpc/grpc-java/pull/11086>) (8a21afc 
   
<https://github.com/grpc/grpc-java/commit/8a21afcc9e07ec1c50408c17c2c1415976ccbc71>
   )

New Features
   
   - New API LoadBalancer.getChannelTarget() (4561bb5 
   
<https://github.com/grpc/grpc-java/commit/4561bb5b804ca242e0dd4047d8d2744c3eb9920f>
   )
   - opentelemetry: Publish new module grpc-opentelemetry (5ba1a55 
   
<https://github.com/grpc/grpc-java/commit/5ba1a556374deb588601265f5d160056e238627e>).
 
   The feature is still missing documentation and an example. It only supports 
   metrics; tracing and logs will be future enhancements. See gRFC A66 
   <https://github.com/grpc/proposal/blob/master/A66-otel-stats.md>
   - bazel: Add support for bzlmod (#11046 
   <https://github.com/grpc/grpc-java/pull/11046>) (d1890c0 
   
<https://github.com/grpc/grpc-java/commit/d1890c0accd5d66f1576480dbe60d57011cdd903>
   )
   - bazel: Replace usages of the old compatibility maven targets with 
   @maven targets (0064991 
   
<https://github.com/grpc/grpc-java/commit/00649913b0e27ec813ffb54b9cf1ca2ead21cc2c>
   )
   - okhttp: Support serverBuilder.maxConcurrentCallsPerConnection (Fixes 
   #11062 <https://github.com/grpc/grpc-java/issues/11062>). (#11063 
   <https://github.com/grpc/grpc-java/pull/11063>) (8050723 
   
<https://github.com/grpc/grpc-java/commit/80507233975185b377079934aaedda9acbf5174a>
   )
   - xds: Experimental metrics recording in WRR LB (06df25b 
   
<https://github.com/grpc/grpc-java/commit/06df25b65dd9351a6aa8c330b8753d8c814b30ff>
   , 35a171b 
   
<https://github.com/grpc/grpc-java/commit/35a171bc1d544241dd983deee9f407ebddddbc4a>
   , 2897b39 
   
<https://github.com/grpc/grpc-java/commit/2897b39390460bae02d2c7a58b2b56f0c5d23944>),
 
   to be exported by grpc-opentelemetry if explicitly enabled in 
   GrpcOpenTelemetry. See gRFC A78 
   <https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md>
   - rls: Experimental metrics recording in RLS LB (a9fb272 
   
<https://github.com/grpc/grpc-java/commit/a9fb272b784180305c6ec3de77e21359752ac5b6>
   , a1d1932 
   
<https://github.com/grpc/grpc-java/commit/a1d19327febde9c26fff8f59f7825ffe15dda4c7>
   , 8133318 
   
<https://github.com/grpc/grpc-java/commit/8133318376ae222ca162da91316b36beea1b5277>),
 
   to be exported by grpc-opentelemetry if explicitly enabled in 
   GrpcOpenTelemetry

Improvements
   
   - examples: support bazel build for retry policy example (58de563 
   
<https://github.com/grpc/grpc-java/commit/58de563fa480ccc225efdd97d694f44ffa377e7e>
   )
   - netty: Allow deframer errors to close stream with a status code, as 
   long as headers have not yet been sent (e036b1b 
   
<https://github.com/grpc/grpc-java/commit/e036b1b198bfa2eb5fbdd27fc02a5df95ecd939b>).
 
   This will greatly improve the debuggability of certain server errors in 
   particular cases. Instead of the client seeing “CANCELLED: RST_STREAM 
   closed stream. HTTP/2 error code: CANCEL”, they could see 
   “RESOURCE_EXHAUSTED: gRPC message exceeds maximum size 4194304: 6144592”
   - netty: Improve handling of unexpected write queue promise failures (
   #11016 <https://github.com/grpc/grpc-java/pull/11016>)
   - servlet: Avoid unnecessary FINEST hex string conversion by checking 
   log level. Fixes #11031 <https://github.com/grpc/grpc-java/issues/11031>. 
   (f7ee5f3 
   
<https://github.com/grpc/grpc-java/commit/f7ee5f3182dddde775069155d17ed93f7270f1ca>
   )
   - StatusException/StatusRuntimeException hide stack trace in a simpler 
   way (#11064 <https://github.com/grpc/grpc-java/pull/11064>) (e36f099 
   
<https://github.com/grpc/grpc-java/commit/e36f099be9a09e8db09832a49a49ac8f3f423fce>
   )
   - util: Status desc for outlier detection ejection (#11036 
   <https://github.com/grpc/grpc-java/pull/11036>) (10cb4a3 
   
<https://github.com/grpc/grpc-java/commit/10cb4a3bed4631d4991a2dcbb263c53a6dc607c8>
   )
   - binder: Helper class to allow in process servers to use peer uids in 
   test (#11014 <https://github.com/grpc/grpc-java/pull/11014>) (537dbe8 
   
<https://github.com/grpc/grpc-java/commit/537dbe826a15386c0523851ff0ec5cb6f20e99fb>
   )
   - Add load() statements for the Bazel builtin top-level java symbols (
   #11105 <https://github.com/grpc/grpc-java/pull/11105>) (add8c37 
   
<https://github.com/grpc/grpc-java/commit/add8c37a4148f6dd857dd31c7425e2ae526e0528>
   )
   - Add StatusProto.toStatusException overload to accept Throwable (#11083 
   <https://github.com/grpc/grpc-java/pull/11083>) (5c9b492 
   
<https://github.com/grpc/grpc-java/commit/5c9b492318d6a996f7703ee83d91e0568cfe0c2a>
   )

Bug fixes
   
   - Fix retry race condition that can lead to double decrementing 
   inFlightSubStreams and so miss calling closed (#11026 
   <https://github.com/grpc/grpc-java/pull/11026>) (bdb6230 
   
<https://github.com/grpc/grpc-java/commit/bdb623031f4ce0048742c6ff945272d65b467f63>
   )
   - Change defaults to use the older PickFirstLoadBalancer and disable 
   Happy Eyeballs. This disables a performance optimization added in v1.63. (
   #11120 <https://github.com/grpc/grpc-java/pull/11120>) We have had a 
   report that the new implementation can trigger a NullPointerException
   - core: Transition to CONNECTING immediately when exiting idle (2c5f0c2 
   
<https://github.com/grpc/grpc-java/commit/2c5f0c22cdd66687f0c36f648f3fc3a05ae90309>).
 
   Previously the visible state change from channel.getState() was delayed 
   until the name resolver returned results. This had no impact to RPC behavior
   - xds: Specify a locale for upper/lower case conversions (e630593 
   
<https://github.com/grpc/grpc-java/commit/e6305930def1c2fc7dd9bdbe74af3e2c3fe229f7>
   )
   - rls: Synchronization fixes in CachingRlsLbClient (6e97b18 
   
<https://github.com/grpc/grpc-java/commit/6e97b180b4d1f94977ec1b91295c99333462dfa0>).
 
   These races had not been witnessed in practice
   - rls: Guarantee backoff will update RLS picker (f9b6e5f 
   
<https://github.com/grpc/grpc-java/commit/f9b6e5f92d20d7c68e59d392f8b42317502bb296>).
 
   This fixes a regression introduced by 6e97b18 
   
<https://github.com/grpc/grpc-java/commit/6e97b180b4d1f94977ec1b91295c99333462dfa0>
 that 
   could hang RPCs instead of using fallback, but fixes a pre-existing bug 
   that could greatly delay RPCs from using fallback.
   - rls: Fix time handling in CachingRlsLbClient (da619e2 
   
<https://github.com/grpc/grpc-java/commit/da619e2bde611efd623ec1ec397a3b8c25931966>).
 
   This could have caused backoff entries to improperly be considered expired
   - xds: Properly disable the default endpoint identification algorithm 
   with XdsChannelCredentials (097a46b 
   
<https://github.com/grpc/grpc-java/commit/097a46b76171eb83f045c4c88d650dd833a7fa88>).
 
   The credential does its own verification and the default needs to be 
   disabled for SPIFFE
   - netty: Release SendGrpcFrameCommand when stream is missing (#11116 
   <https://github.com/grpc/grpc-java/pull/11116>) (fb9a108 
   
<https://github.com/grpc/grpc-java/commit/fb9a10809f5106333f447fe0cda1c761d5846f72>
   )
   - okhttp: Remove finished stream even if a pending stream was started (
   d21fe32 
   
<https://github.com/grpc/grpc-java/commit/d21fe32bea9dacb33d2c975847361995b4d170bf>
   )

Dependencies
   
   - cronet: Update Cronet to latest release + Move to Stable Cronet APIs. (
   5a8da19 
   
<https://github.com/grpc/grpc-java/commit/5a8da19f32a3c4dcf582b4c2516eada9068ce33c>
   )
   - cronet: @JavaDoc update android permission MODIFY_NETWORK_ACCOUNTING 
   (deprecated) => UPDATE_DEVICE_STATS (c703a1e 
   
<https://github.com/grpc/grpc-java/commit/c703a1ee07eee5034ab2a4735cb475510809c631>
   )
   - cronet: Update to Java-8 API's and tighten the scopes (163efa3 
   
<https://github.com/grpc/grpc-java/commit/163efa3716216ad03f2bec60a82c1b3a7fc69a79>
   )
   - cronet: Update to StandardCharsets and assertNotNull API's (77e59b2 
   
<https://github.com/grpc/grpc-java/commit/77e59b29dd5328fdb8166e22b6968e3ea834ed8c>
   )

Acknowledgements

@panchenko <https://github.com/panchenko>
@Ashok-Varma <https://github.com/Ashok-Varma>
@benjaminp <https://github.com/benjaminp>
@AutomatedTester <https://github.com/AutomatedTester>
@hypnoce <https://github.com/hypnoce>
@keith <https://github.com/keith>
@laglangyue <https://github.com/laglangyue>
@rostik404 <https://github.com/rostik404>
@ryanpbrewster <https://github.com/ryanpbrewster>
@abtom <https://github.com/abtom>
@hvadehra <https://github.com/hvadehra>
@rtadepalli <https://github.com/rtadepalli>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/db6d23ae-253d-40d7-ad6b-dd2082603383n%40googlegroups.com.

Reply via email to