Skip to content
Snippets Groups Projects
Commit 262b8672 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Catch SQLiteException from remote processes"

parents be3be424 d0cf6b76
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ import android.content.ContentResolver; ...@@ -22,6 +22,7 @@ import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri; import android.net.Uri;
import android.os.SystemClock; import android.os.SystemClock;
import android.provider.BaseColumns; import android.provider.BaseColumns;
...@@ -145,8 +146,10 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { ...@@ -145,8 +146,10 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
cursor.close(); cursor.close();
} }
} }
} catch (IllegalStateException e) { } catch (final SQLiteException e) {
Log.e(TAG, "Contacts DB is having problems"); Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
} catch (final IllegalStateException e) {
Log.e(TAG, "Contacts DB is having problems", e);
} }
} }
...@@ -173,14 +176,18 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { ...@@ -173,14 +176,18 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
private int getContactCount() { private int getContactCount() {
// TODO: consider switching to a rawQuery("select count(*)...") on the database if // TODO: consider switching to a rawQuery("select count(*)...") on the database if
// performance is a bottleneck. // performance is a bottleneck.
final Cursor cursor = mContext.getContentResolver().query( try {
Contacts.CONTENT_URI, PROJECTION_ID_ONLY, null, null, null); final Cursor cursor = mContext.getContentResolver().query(
if (cursor != null) { Contacts.CONTENT_URI, PROJECTION_ID_ONLY, null, null, null);
try { if (cursor != null) {
return cursor.getCount(); try {
} finally { return cursor.getCount();
cursor.close(); } finally {
cursor.close();
}
} }
} catch (final SQLiteException e) {
Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
} }
return 0; return 0;
} }
......
...@@ -22,10 +22,12 @@ import android.content.ContentUris; ...@@ -22,10 +22,12 @@ import android.content.ContentUris;
import android.content.Context; import android.content.Context;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.provider.UserDictionary.Words; import android.provider.UserDictionary.Words;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.android.inputmethod.compat.UserDictionaryCompatUtils; import com.android.inputmethod.compat.UserDictionaryCompatUtils;
import com.android.inputmethod.latin.utils.LocaleUtils; import com.android.inputmethod.latin.utils.LocaleUtils;
...@@ -39,6 +41,7 @@ import java.util.Locale; ...@@ -39,6 +41,7 @@ import java.util.Locale;
* dictionary file to use it from native code. * dictionary file to use it from native code.
*/ */
public class UserBinaryDictionary extends ExpandableBinaryDictionary { public class UserBinaryDictionary extends ExpandableBinaryDictionary {
private static final String TAG = ExpandableBinaryDictionary.class.getSimpleName();
// The user dictionary provider uses an empty string to mean "all languages". // The user dictionary provider uses an empty string to mean "all languages".
private static final String USER_DICTIONARY_ALL_LANGUAGES = ""; private static final String USER_DICTIONARY_ALL_LANGUAGES = "";
...@@ -168,12 +171,19 @@ public class UserBinaryDictionary extends ExpandableBinaryDictionary { ...@@ -168,12 +171,19 @@ public class UserBinaryDictionary extends ExpandableBinaryDictionary {
} else { } else {
requestArguments = localeElements; requestArguments = localeElements;
} }
final Cursor cursor = mContext.getContentResolver().query( Cursor cursor = null;
Words.CONTENT_URI, PROJECTION_QUERY, request.toString(), requestArguments, null);
try { try {
cursor = mContext.getContentResolver().query(
Words.CONTENT_URI, PROJECTION_QUERY, request.toString(), requestArguments, null);
addWords(cursor); addWords(cursor);
} catch (final SQLiteException e) {
Log.e(TAG, "SQLiteException in the remote User dictionary process.", e);
} finally { } finally {
if (null != cursor) cursor.close(); try {
if (null != cursor) cursor.close();
} catch (final SQLiteException e) {
Log.e(TAG, "SQLiteException in the remote User dictionary process.", e);
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment