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

Commit 51c4f038 authored by Bernardo Rufino's avatar Bernardo Rufino
Browse files

Catch IAE from unbind onServiceDisconnected()

We still don't know the underlying cause of this, but we shouldn't crash
the system_server. Catching for now.

Bug: 74940472
Bug: 77574274
Test: m -j RunFrameworksServicesRoboTests
Change-Id: I36fc2e65f8766f6b8fd68104d8830b72668d84eb
parent 8a585a6f
Loading
Loading
Loading
Loading
+11 −2
Original line number Original line Diff line number Diff line
@@ -439,8 +439,17 @@ public class TransportClient {
        synchronized (mStateLock) {
        synchronized (mStateLock) {
            log(Priority.ERROR, "Service disconnected: client UNUSABLE");
            log(Priority.ERROR, "Service disconnected: client UNUSABLE");
            setStateLocked(State.UNUSABLE, null);
            setStateLocked(State.UNUSABLE, null);
            try {
                // After unbindService() no calls back to mConnection
                // After unbindService() no calls back to mConnection
                mContext.unbindService(mConnection);
                mContext.unbindService(mConnection);
            } catch (IllegalArgumentException e) {
                // TODO: Investigate why this is happening
                // We're UNUSABLE, so any calls to mConnection will be no-op, so it's safe to
                // swallow this one
                log(
                        Priority.WARN,
                        "Exception trying to unbind onServiceDisconnected(): " + e.getMessage());
            }
        }
        }
    }
    }