diff options
| author | 2016-05-25 00:09:28 +0000 | |
|---|---|---|
| committer | 2016-05-25 00:09:29 +0000 | |
| commit | 0810732a2affee7264d12b73fbcfa82d0db991b4 (patch) | |
| tree | 17e40d53f0d58ebad39a1f2e8ffc7884fc3a9287 | |
| parent | 7a1aa926109b090251d193426ba9fdc699e6f3b7 (diff) | |
| parent | e957a8a0b4100d001f79c866e7904d2426ac8da0 (diff) | |
Merge "Add missing "try ... finally" safeguards" into nyc-dev
| -rw-r--r-- | core/java/android/bluetooth/BluetoothAdapter.java | 15 | ||||
| -rw-r--r-- | services/core/java/com/android/server/BluetoothManagerService.java | 34 |
2 files changed, 29 insertions, 20 deletions
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index 4c8657810c71..9390bcd13de3 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -2045,12 +2045,15 @@ public final class BluetoothAdapter { public void onBluetoothServiceDown() { if (VDBG) Log.d(TAG, "onBluetoothServiceDown: " + mService); - mServiceLock.writeLock().lock(); - mService = null; - if (mLeScanClients != null) mLeScanClients.clear(); - if (sBluetoothLeAdvertiser != null) sBluetoothLeAdvertiser.cleanup(); - if (sBluetoothLeScanner != null) sBluetoothLeScanner.cleanup(); - mServiceLock.writeLock().unlock(); + 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 ){ diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index f30a126ba60e..1f88be55ec6b 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -1457,14 +1457,17 @@ class BluetoothManagerService extends IBluetoothManager.Stub { BluetoothAdapter.STATE_OFF); sendBluetoothServiceDownCallback(); - mBluetoothLock.writeLock().lock(); - if (mBluetooth != null) { - mBluetooth = null; - // Unbind - mContext.unbindService(mConnection); + try { + mBluetoothLock.writeLock().lock(); + if (mBluetooth != null) { + mBluetooth = null; + // Unbind + mContext.unbindService(mConnection); + } + mBluetoothGatt = null; + } finally { + mBluetoothLock.writeLock().unlock(); } - mBluetoothGatt = null; - mBluetoothLock.writeLock().unlock(); SystemClock.sleep(100); @@ -1765,14 +1768,17 @@ class BluetoothManagerService extends IBluetoothManager.Stub { sendBluetoothServiceDownCallback(); - mBluetoothLock.writeLock().lock(); - if (mBluetooth != null) { - mBluetooth = null; - // Unbind - mContext.unbindService(mConnection); + try { + mBluetoothLock.writeLock().lock(); + if (mBluetooth != null) { + mBluetooth = null; + // Unbind + mContext.unbindService(mConnection); + } + mBluetoothGatt = null; + } finally { + mBluetoothLock.writeLock().unlock(); } - mBluetoothGatt = null; - mBluetoothLock.writeLock().unlock(); mHandler.removeMessages(MESSAGE_BLUETOOTH_STATE_CHANGE); mState = BluetoothAdapter.STATE_OFF; |