Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80180510 authored by Jean Chalard's avatar Jean Chalard
Browse files

Some cleanups

Improve a slew of logging statements, and put commands that we don't
expect to need protecting against exceptions out of a try {} block.

This is a followup to Id3dc510a

Change-Id: Idc6f419ac095b5b0f2d6862d58926ef888cb34e6
parent 82441e60
Loading
Loading
Loading
Loading
+21 −18
Original line number Diff line number Diff line
@@ -117,8 +117,6 @@ public final class BinaryDictionaryFileDumper {
     */
    private static List<WordListInfo> getWordListWordListInfos(final Locale locale,
            final Context context, final boolean hasDefaultWordList) {
        try {
            final ContentResolver resolver = context.getContentResolver();
        final String clientId = context.getString(R.string.dictionary_pack_client_id);
        final Uri.Builder builder = getProviderUriBuilder(clientId);
        builder.appendPath(QUERY_PATH_DICT_INFO);
@@ -130,6 +128,8 @@ public final class BinaryDictionaryFileDumper {
        }
        final Uri dictionaryPackUri = builder.build();

        final ContentResolver resolver = context.getContentResolver();
        try {
            final Cursor c = resolver.query(dictionaryPackUri, DICTIONARY_PROJECTION, null, null,
                    null);
            if (null == c) {
@@ -153,8 +153,11 @@ public final class BinaryDictionaryFileDumper {
            c.close();
            return list;
        } catch (IllegalArgumentException e) {
            // Since we are testing for the dictionary pack presence before doing anything that may
            // crash, it's probably impossible for the code to come here. However it's very
            // Any method call on the content resolver may unexpectedly crash without notice
            // if the content provider is not present (for example, while crypting a device).
            // Testing seems to indicate that ContentResolver#query() merely returns null
            // while ContentResolver#delete throws IllegalArgumentException but this is
            // undocumented, so all ContentResolver methods should be protected. A crash here is
            // dangerous because crashing here would brick any encrypted device - we need the
            // keyboard to be up and working to enter the password. So let's be as safe as possible.
            Log.e(TAG, "IllegalArgumentException: the dictionary pack can't be contacted?", e);
@@ -162,7 +165,7 @@ public final class BinaryDictionaryFileDumper {
        } catch (Exception e) {
            // Just in case we hit a problem in communication with the dictionary pack.
            // We don't want to die.
            Log.e(TAG, "Exception communicating with the dictionary pack : " + e);
            Log.e(TAG, "Exception communicating with the dictionary pack", e);
            return Collections.<WordListInfo>emptyList();
        }
    }
@@ -277,7 +280,7 @@ public final class BinaryDictionaryFileDumper {
                return AssetFileAddress.makeFromFileName(finalFileName);
            } catch (Exception e) {
                if (DEBUG) {
                    Log.i(TAG, "Can't open word list in mode " + mode + " : " + e);
                    Log.i(TAG, "Can't open word list in mode " + mode, e);
                }
                if (null != outputFile) {
                    // This may or may not fail. The file may not have been created if the
@@ -295,12 +298,12 @@ public final class BinaryDictionaryFileDumper {
                    if (null != decryptedStream) decryptedStream.close();
                    if (null != bufferedInputStream) bufferedInputStream.close();
                } catch (Exception e) {
                    Log.e(TAG, "Exception while closing a file descriptor : " + e);
                    Log.e(TAG, "Exception while closing a file descriptor", e);
                }
                try {
                    if (null != bufferedOutputStream) bufferedOutputStream.close();
                } catch (Exception e) {
                    Log.e(TAG, "Exception while closing a file : " + e);
                    Log.e(TAG, "Exception while closing a file", e);
                }
            }
        }