summaryrefslogtreecommitdiffstats
path: root/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
diff options
context:
space:
mode:
authorZoltan Szatmary-Ban <szatmz@google.com>2014-09-11 11:28:20 +0100
committerZoltan Szatmary-Ban <szatmz@google.com>2014-09-11 11:28:20 +0100
commit35349352732fd6d889b8d718dd29f068ebbf1021 (patch)
tree922fe01bb05eaed7c276495168824b3b3274d795 /packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
parentc727fb1fc2a0653f2f1355c2f5aa826a3126dcc4 (diff)
downloadframeworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.zip
frameworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.tar.gz
frameworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.tar.bz2
Leave SettingsProvider running if cloning of a setting fails
Cloning of settings to managed profiles could fail due to security restrictions. This caused Settings app crash. Instead the exception is now caught inside SettingsProvider, logged, and we leave the app running. Bug:17450158 Change-Id: I7525d634e57701db304117f4b2035faf53977836
Diffstat (limited to 'packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java')
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 4ef2189..30ccd2c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -789,8 +789,15 @@ public class SettingsProvider extends ContentProvider {
Slog.v(TAG, "putting to additional user "
+ mManagedProfiles.get(i).id);
}
- insertForUser(Settings.Secure.CONTENT_URI, values,
- mManagedProfiles.get(i).id);
+ try {
+ insertForUser(Settings.Secure.CONTENT_URI, values,
+ mManagedProfiles.get(i).id);
+ } catch (SecurityException e) {
+ // Temporary fix, see b/17450158
+ Slog.w(TAG, "Cannot clone request '" + request + "' with value '"
+ + newValue + "' to managed profile (id "
+ + mManagedProfiles.get(i).id + ")", e);
+ }
}
} finally {
Binder.restoreCallingIdentity(token);