diff options
author | satok <satok@google.com> | 2011-08-31 16:30:27 +0900 |
---|---|---|
committer | satok <satok@google.com> | 2011-08-31 16:30:27 +0900 |
commit | c7b60f72dda5c5f222342a9d60435ec353a8a19b (patch) | |
tree | 1a60958ae1bcce17e525f074793b99293ee7d36c /services/java/com/android/server/TextServicesManagerService.java | |
parent | 4596eba795898674186c800dcc0f5910467008a5 (diff) |
Fix DeadObjectException of the spell checker
Bug: 5119646
Change-Id: I2938a2206b79645c13a54cc7200f64c2c0aa3836
Diffstat (limited to 'services/java/com/android/server/TextServicesManagerService.java')
-rw-r--r-- | services/java/com/android/server/TextServicesManagerService.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/services/java/com/android/server/TextServicesManagerService.java b/services/java/com/android/server/TextServicesManagerService.java index f6c369eacddf..c792b33bf2b4 100644 --- a/services/java/com/android/server/TextServicesManagerService.java +++ b/services/java/com/android/server/TextServicesManagerService.java @@ -201,7 +201,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE); if (DBG) { - Slog.w(TAG, "getCurrentSpellChecker: " + subtypeHashCodeStr); + Slog.w(TAG, "getCurrentSpellCheckerSubtype: " + subtypeHashCodeStr); } final SpellCheckerInfo sci = getCurrentSpellChecker(null); if (sci == null || sci.getSubtypeCount() == 0) { @@ -509,7 +509,8 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { listener.mScLocale, listener.mScListener, listener.mBundle); listener.mTsListener.onServiceConnected(session); } catch (RemoteException e) { - Slog.e(TAG, "Exception in getting the spell checker session: " + e); + Slog.e(TAG, "Exception in getting the spell checker session." + + "Reconnect to the spellchecker. ", e); removeAll(); return; } @@ -579,8 +580,12 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Slog.d(TAG, "cleanLocked"); } if (mListeners.isEmpty()) { - if (mSpellCheckerBindGroups.containsKey(this)) { - mSpellCheckerBindGroups.remove(this); + final String sciId = mInternalConnection.mSciId; + if (mSpellCheckerBindGroups.containsKey(sciId)) { + if (DBG) { + Slog.d(TAG, "Remove bind group."); + } + mSpellCheckerBindGroups.remove(sciId); } // Unbind service when there is no active clients. mContext.unbindService(mInternalConnection); |