summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2022-01-13 04:44:19 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-01-13 04:44:19 +0000
commitbd805bbc243d5763959fdb879d3f89ec5decdadd (patch)
tree9a83b21ac728c6e1dda2617fc0c5bb0a6bbcfdb4
parent0fdb31ff38e96ab3b1a57f4d8ab06d50e560f2af (diff)
parent205bda070b1f190e8815f2c1dd47219d69a57f37 (diff)
Merge "[Stability][Bugfix] Catch DeadObjectException in TCMS." am: 8c93a72063 am: 4259e1cf46 am: 205bda070b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1924058 Change-Id: I1c27615308364a0c41cd0cae7e5c4c826a995c91
-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 0f37450c24c9..e7d05b623481 100644
--- a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
+++ b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
@@ -527,12 +527,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,
@@ -541,6 +542,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);
}