Catch exception when notifying Settings changes.
Since changes are dispatched through a separate thread, the target
user may have been removed by the time we try sending the change
notification, so log instead of crashing.
Bug: 64402212
Test: builds, boots
Change-Id: I0efdfabf24829bef7a1ecc7b3c97205f87e9769f
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 146b349..53ffe95 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2878,7 +2878,11 @@
case MSG_NOTIFY_URI_CHANGED: {
final int userId = msg.arg1;
Uri uri = (Uri) msg.obj;
- getContext().getContentResolver().notifyChange(uri, null, true, userId);
+ try {
+ getContext().getContentResolver().notifyChange(uri, null, true, userId);
+ } catch (SecurityException e) {
+ Slog.w(LOG_TAG, "Failed to notify for " + userId + ": " + uri, e);
+ }
if (DEBUG) {
Slog.v(LOG_TAG, "Notifying for " + userId + ": " + uri);
}