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() {