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

Commit f453e34e authored by Pavlin Radoslavov's avatar Pavlin Radoslavov
Browse files

Add missing "try ... finally" safeguards

Safeguards for code protected by ReentrantReadWriteLock.

Bug: 28734075
Bug: 28799467
Change-Id: Ib7f598a92e8df6bd855ca48cdd094c1c73a935f2
(cherry picked from commit e957a8a0b4100d001f79c866e7904d2426ac8da0)
parent 97340071
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -2029,12 +2029,15 @@ public final class BluetoothAdapter {
            public void onBluetoothServiceDown() {
                if (VDBG) Log.d(TAG, "onBluetoothServiceDown: " + mService);

                try {
                    mServiceLock.writeLock().lock();
                    mService = null;
                    if (mLeScanClients != null) mLeScanClients.clear();
                    if (sBluetoothLeAdvertiser != null) sBluetoothLeAdvertiser.cleanup();
                    if (sBluetoothLeScanner != null) sBluetoothLeScanner.cleanup();
                } finally {
                    mServiceLock.writeLock().unlock();
                }

                synchronized (mProxyServiceStateCallbacks) {
                    for (IBluetoothManagerCallback cb : mProxyServiceStateCallbacks ){
+20 −14
Original line number Diff line number Diff line
@@ -1539,6 +1539,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                                                    BluetoothAdapter.STATE_OFF);
                        sendBluetoothServiceDownCallback();

                        try {
                            mBluetoothLock.writeLock().lock();
                            if (mBluetooth != null) {
                                mBluetooth = null;
@@ -1546,7 +1547,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                                mContext.unbindService(mConnection);
                            }
                            mBluetoothGatt = null;
                        } finally {
                            mBluetoothLock.writeLock().unlock();
                        }

                        SystemClock.sleep(100);

@@ -1851,6 +1854,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub {

        sendBluetoothServiceDownCallback();

        try {
            mBluetoothLock.writeLock().lock();
            if (mBluetooth != null) {
                mBluetooth = null;
@@ -1858,7 +1862,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                mContext.unbindService(mConnection);
            }
            mBluetoothGatt = null;
        } finally {
            mBluetoothLock.writeLock().unlock();
        }

        mHandler.removeMessages(MESSAGE_BLUETOOTH_STATE_CHANGE);
        mState = BluetoothAdapter.STATE_OFF;