diff options
author | Eric Laurent <elaurent@google.com> | 2010-07-01 11:56:11 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-07-01 11:56:11 -0700 |
commit | eba857d126e2b76a368f41d3169a56fe28029674 (patch) | |
tree | 77019bf7c5553450c1d042c377a04d173aeca217 /media/java | |
parent | d51c2cacce4ad945bea4c00cea4326cf76b49cd2 (diff) | |
parent | a0c2b53966238125143dec01d3f2598a8b9e33a2 (diff) | |
download | frameworks_base-eba857d126e2b76a368f41d3169a56fe28029674.zip frameworks_base-eba857d126e2b76a368f41d3169a56fe28029674.tar.gz frameworks_base-eba857d126e2b76a368f41d3169a56fe28029674.tar.bz2 |
am a0c2b539: Merge "Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call." into gingerbread
Merge commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2' into gingerbread-plus-aosp
* commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2':
Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioService.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index 50f0674..9212708 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -16,6 +16,7 @@ package android.media; +import java.util.NoSuchElementException; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -1016,7 +1017,11 @@ public class AudioService extends IAudioService.Stub { } else { mStartcount--; if (mStartcount == 0) { - mCb.unlinkToDeath(this, 0); + try { + mCb.unlinkToDeath(this, 0); + } catch (NoSuchElementException e) { + Log.w(TAG, "decCount() going to 0 but not registered to binder"); + } } requestScoState(BluetoothHeadset.AUDIO_STATE_DISCONNECTED); } @@ -1025,8 +1030,14 @@ public class AudioService extends IAudioService.Stub { public void clearCount(boolean stopSco) { synchronized(mScoClients) { + if (mStartcount != 0) { + try { + mCb.unlinkToDeath(this, 0); + } catch (NoSuchElementException e) { + Log.w(TAG, "clearCount() mStartcount: "+mStartcount+" != 0 but not registered to binder"); + } + } mStartcount = 0; - mCb.unlinkToDeath(this, 0); if (stopSco) { requestScoState(BluetoothHeadset.AUDIO_STATE_DISCONNECTED); } |