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

Commit a3701d37 authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "Synchronize on ArrayList object mutations to avoid AIOOBE" into main

parents b62ada41 16ecfea7
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -355,9 +355,10 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
                obtainMessage(AbstractRemoteService::handleFinishRequest, this, finshedRequest));
    }

    private void handleFinishRequest(@NonNull BasePendingRequest<S, I> finshedRequest) {
        mUnfinishedRequests.remove(finshedRequest);

    private void handleFinishRequest(@NonNull BasePendingRequest<S, I> finishedRequest) {
        synchronized (mUnfinishedRequests) {
            mUnfinishedRequests.remove(finishedRequest);
        }
        if (mUnfinishedRequests.isEmpty()) {
            scheduleUnbind();
        }
@@ -460,7 +461,9 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
        } else {
            if (mVerbose) Slog.v(mTag, "handlePendingRequest(): " + pendingRequest);

            synchronized (mUnfinishedRequests) {
                mUnfinishedRequests.add(pendingRequest);
            }
            cancelScheduledUnbind();

            pendingRequest.run();