From b7fbb9b691f2c8dfe23a327943bd6b05f1a3503e Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Wed, 7 May 2014 23:56:50 -0700 Subject: [PATCH] Support multiple calls to AsyncChannel.disconnect prior to this you'd get a crash if you called it twice. Change-Id: Ie066b1e00970e17b2ebab5c51a57a9a3459aee26 --- core/java/com/android/internal/util/AsyncChannel.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/com/android/internal/util/AsyncChannel.java b/core/java/com/android/internal/util/AsyncChannel.java index 52281d92fd7bc..34f62bac29ea0 100644 --- a/core/java/com/android/internal/util/AsyncChannel.java +++ b/core/java/com/android/internal/util/AsyncChannel.java @@ -450,6 +450,7 @@ public class AsyncChannel { public void disconnect() { if ((mConnection != null) && (mSrcContext != null)) { mSrcContext.unbindService(mConnection); + mConnection = null; } try { // Send the DISCONNECTED, although it may not be received @@ -463,10 +464,12 @@ public class AsyncChannel { // Tell source we're disconnected. if (mSrcHandler != null) { replyDisconnected(STATUS_SUCCESSFUL); + mSrcHandler = null; } // Unlink only when bindService isn't used if (mConnection == null && mDstMessenger != null && mDeathMonitor!= null) { mDstMessenger.getBinder().unlinkToDeath(mDeathMonitor, 0); + mDeathMonitor = null; } }