pw_rpc: Temporarily provide default abandon() implementation
The default implementation of abandon() allows users to update in a
non-breaking way. The default implementation will be removed once the
migration is complete.
Bug: b/235513314
Change-Id: Ib5748fc815c0e166913c9428e8c1e88d57641ca3
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/97682
Reviewed-by: Ted Pudlik <tpudlik@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
diff --git a/pw_rpc/java/main/dev/pigweed/pw_rpc/Call.java b/pw_rpc/java/main/dev/pigweed/pw_rpc/Call.java
index 17ef094..4e08261 100644
--- a/pw_rpc/java/main/dev/pigweed/pw_rpc/Call.java
+++ b/pw_rpc/java/main/dev/pigweed/pw_rpc/Call.java
@@ -24,7 +24,16 @@
void cancel() throws ChannelOutputException;
/** Cancels the RPC as in cancel(), but does not send a cancellation packet to the server. */
- void abandon();
+ default void abandon() {
+ // By default, call cancel() and ignore exceptions.
+ // TODO(b/235513314): Remove this default implementation once users have
+ // implemented abandon().
+ try {
+ cancel();
+ } catch (ChannelOutputException e) {
+ // Ignore the exception, since abandon() isn't supposed to send packets.
+ }
+ }
/** True if the RPC has not yet completed. */
default boolean active() {