diff options
| author | 2022-01-13 04:56:37 +0000 | |
|---|---|---|
| committer | 2022-01-13 04:56:37 +0000 | |
| commit | e786a09b76362df9b099d7ea7a8175f160f6bef2 (patch) | |
| tree | 381e923256cf76386d366ae3e8cd9f8c77d9b784 | |
| parent | 1a5be8fc17a2e4436764c56ac50cfa644b7e07ad (diff) | |
| parent | bd805bbc243d5763959fdb879d3f89ec5decdadd (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.java | 15 |
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); } |