From 35349352732fd6d889b8d718dd29f068ebbf1021 Mon Sep 17 00:00:00 2001 From: Zoltan Szatmary-Ban Date: Thu, 11 Sep 2014 11:28:20 +0100 Subject: [PATCH] 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 --- .../android/providers/settings/SettingsProvider.java | 11 +++++++++-- 1 file 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 4ef21897ef6ee..30ccd2c136505 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);