From d5913833d0042268db5b2a1518aa95b704e51891 Mon Sep 17 00:00:00 2001 From: Sergey Nikolaienkov Date: Thu, 30 Jun 2022 12:41:29 +0200 Subject: [PATCH] Do not leak Future when CompanionTransportManager.sendMessage() thows Remove CompletableFuture callback object from mPendingRequests if sendMessage() throws an IOException. Bug: 237030169 Test: atest CompanionTests Change-Id: I067cc5f1b7b86a20d2bf74229d6bd9c5fda74e35 --- .../server/companion/transport/CompanionTransportManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java index f01bdf2103bd1..4a990095cd8f1 100644 --- a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java +++ b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java @@ -200,6 +200,9 @@ public class CompanionTransportManager { try { sendMessage(message, sequence, data); } catch (IOException e) { + synchronized (mPendingRequests) { + mPendingRequests.remove(sequence); + } pending.completeExceptionally(e); } return pending;