am 0a75373f: Merge "Fix a bug where the UserDictionary may not be released" into ics-mr1

* commit '0a75373f4187d2db036757c2c2bcaba42301fd22':
  Fix a bug where the UserDictionary may not be released
diff --git a/java/src/com/android/inputmethod/latin/UserDictionary.java b/java/src/com/android/inputmethod/latin/UserDictionary.java
index 67da4fa..0bbbf39 100644
--- a/java/src/com/android/inputmethod/latin/UserDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserDictionary.java
@@ -179,8 +179,9 @@
         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 @@
                     // 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();