Merge "[Stability][Bugfix] Catch DeadObjectException in TCMS." am: 8c93a72063
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1924058 Change-Id: Ifce4cfe3e22ecd3b37f77a0d940bed0b340804fa
This commit is contained in:
@@ -527,12 +527,13 @@ public final class TextClassificationManagerService extends ITextClassifierServi
|
|||||||
callback.onFailure();
|
callback.onFailure();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
textClassifierServiceConsumer.accept(serviceState.mService);
|
consumeServiceNoExceptLocked(textClassifierServiceConsumer, serviceState.mService);
|
||||||
} else {
|
} else {
|
||||||
serviceState.mPendingRequests.add(
|
serviceState.mPendingRequests.add(
|
||||||
new PendingRequest(
|
new PendingRequest(
|
||||||
methodName,
|
methodName,
|
||||||
() -> textClassifierServiceConsumer.accept(serviceState.mService),
|
() -> consumeServiceNoExceptLocked(
|
||||||
|
textClassifierServiceConsumer, serviceState.mService),
|
||||||
callback::onFailure, callback.asBinder(),
|
callback::onFailure, callback.asBinder(),
|
||||||
this,
|
this,
|
||||||
serviceState,
|
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) {
|
private static ITextClassifierCallback wrap(ITextClassifierCallback orig) {
|
||||||
return new CallbackWrapper(orig);
|
return new CallbackWrapper(orig);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user