summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-07-01 11:56:11 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-07-01 11:56:11 -0700
commiteba857d126e2b76a368f41d3169a56fe28029674 (patch)
tree77019bf7c5553450c1d042c377a04d173aeca217 /media/java
parentd51c2cacce4ad945bea4c00cea4326cf76b49cd2 (diff)
parenta0c2b53966238125143dec01d3f2598a8b9e33a2 (diff)
downloadframeworks_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.java15
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);
}