From 8b9c89aee214f692ca4a639ffd96101c60424986 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Fri, 4 Nov 2011 22:59:57 +0900 Subject: [PATCH] Fix a bug where the UserDictionary may not be released Bug: 5547357 Change-Id: I521afeaa349c86fb0087cedb70127de6acebec78 --- java/src/com/android/inputmethod/latin/UserDictionary.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/latin/UserDictionary.java b/java/src/com/android/inputmethod/latin/UserDictionary.java index 67da4fa50..0bbbf3995 100644 --- a/java/src/com/android/inputmethod/latin/UserDictionary.java +++ b/java/src/com/android/inputmethod/latin/UserDictionary.java @@ -179,8 +179,9 @@ public class UserDictionary extends ExpandableDictionary { new Thread("addWord") { @Override public void run() { + Cursor cursor = null; try { - final Cursor cursor = client.query(Words.CONTENT_URI, PROJECTION_ADD, + cursor = client.query(Words.CONTENT_URI, PROJECTION_ADD, "word=? and ((locale IS NULL) or (locale=?))", new String[] { word, mLocale }, null); if (cursor != null && cursor.moveToFirst()) { @@ -201,6 +202,9 @@ public class UserDictionary extends ExpandableDictionary { // If we come here, the activity is already about to be killed, and we // have no means of contacting the content provider any more. // See ContentResolver#insert, inside the catch(){} + } finally { + if (null != cursor) cursor.close(); + client.release(); } } }.start();