From 9967f0a1d027cc4df972174a6be8b26e227d9de5 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Tue, 18 Feb 2014 13:15:17 +0900 Subject: [PATCH] Avoid crashing when the Content URL is not found. I'm not sure when this can happen, but it seems it does at least on older versions of the platform. Let's avoid crashing. Bug: 11618402 Change-Id: If730b5bd8f20e0f60b884eab5900099116afc5f0 --- .../dictionarypack/DownloadManagerWrapper.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java index e95ca1799..75cc7d4cb 100644 --- a/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java +++ b/java/src/com/android/inputmethod/dictionarypack/DownloadManagerWrapper.java @@ -59,6 +59,10 @@ public class DownloadManagerWrapper { // be opened. It may be a problem with file system corruption. In any case, there is // not much we can do apart from avoiding crashing. Log.e(TAG, "Can't remove files with ID " + ids + " from download manager", e); + } catch (IllegalArgumentException e) { + // Not sure how this can happen, but it could be another case where the provider + // is disabled. Or it could be a bug in older versions of the framework. + Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } } @@ -69,6 +73,8 @@ public class DownloadManagerWrapper { } } catch (SQLiteException e) { Log.e(TAG, "Can't open downloaded file with ID " + fileId, e); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } // We come here if mDownloadManager is null or if an exception was thrown. throw new FileNotFoundException(); @@ -81,6 +87,8 @@ public class DownloadManagerWrapper { } } catch (SQLiteException e) { Log.e(TAG, "Can't query the download manager", e); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } // We come here if mDownloadManager is null or if an exception was thrown. return null; @@ -93,6 +101,8 @@ public class DownloadManagerWrapper { } } catch (SQLiteException e) { Log.e(TAG, "Can't enqueue a request with the download manager", e); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Can't find the content URL for DownloadManager?", e); } return 0; }