summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2022-01-13 04:56:37 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-01-13 04:56:37 +0000
commite786a09b76362df9b099d7ea7a8175f160f6bef2 (patch)
tree381e923256cf76386d366ae3e8cd9f8c77d9b784
parent1a5be8fc17a2e4436764c56ac50cfa644b7e07ad (diff)
parentbd805bbc243d5763959fdb879d3f89ec5decdadd (diff)
Merge "[Stability][Bugfix] Catch DeadObjectException in TCMS." am: 8c93a72063 am: 4259e1cf46 am: 205bda070b am: bd805bbc24
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1924058 Change-Id: I75c0e810eaa0e5cc61a66a18b4b560ce8d1608f5
-rw-r--r--services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
index e98fa28634a4..fe7416782262 100644
--- a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
+++ b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
@@ -528,12 +528,13 @@ public final class TextClassificationManagerService extends ITextClassifierServi
callback.onFailure();
return;
}
- textClassifierServiceConsumer.accept(serviceState.mService);
+ consumeServiceNoExceptLocked(textClassifierServiceConsumer, serviceState.mService);
} else {
serviceState.mPendingRequests.add(
new PendingRequest(
methodName,
- () -> textClassifierServiceConsumer.accept(serviceState.mService),
+ () -> consumeServiceNoExceptLocked(
+ textClassifierServiceConsumer, serviceState.mService),
callback::onFailure, callback.asBinder(),
this,
serviceState,
@@ -542,6 +543,16 @@ public final class TextClassificationManagerService extends ITextClassifierServi
}
}
+ private static void consumeServiceNoExceptLocked(
+ @NonNull ThrowingConsumer<ITextClassifierService> textClassifierServiceConsumer,
+ @Nullable ITextClassifierService service) {
+ try {
+ textClassifierServiceConsumer.accept(service);
+ } catch (RuntimeException | Error e) {
+ Slog.e(LOG_TAG, "Exception when consume textClassifierService: " + e);
+ }
+ }
+
private static ITextClassifierCallback wrap(ITextClassifierCallback orig) {
return new CallbackWrapper(orig);
}