Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c93a720 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "[Stability][Bugfix] Catch DeadObjectException in TCMS."

parents 2e2a97c0 72a6d56d
Loading
Loading
Loading
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -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);
    }
    }