diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java index 0385d1eb02fd4..8d99a6494db0a 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java @@ -387,6 +387,7 @@ final class SettingsState { } catch (Throwable t) { Slog.wtf(LOG_TAG, "Failed to write settings, restoring backup", t); destination.failWrite(out); + throw new IllegalStateException("Failed to write settings, restoring backup", t); } finally { IoUtils.closeQuietly(out); } @@ -408,10 +409,9 @@ final class SettingsState { parser.setInput(in, null); parseStateLocked(parser); - // Any error while parsing is fatal. - } catch (Throwable t) { + } catch (XmlPullParserException | IOException e) { throw new IllegalStateException("Failed parsing settings file: " - + mStatePersistFile , t); + + mStatePersistFile , e); } finally { IoUtils.closeQuietly(in); } diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index b3aa966e37a8c..252c16a6fb873 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -4275,6 +4275,8 @@ final class Settings { Slog.wtf(PackageManagerService.TAG, "Failed to write settings, restoring backup", t); destination.failWrite(out); + throw new IllegalStateException("Failed to write runtime permissions," + + " restoring backup", t); } finally { IoUtils.closeQuietly(out); } @@ -4322,10 +4324,9 @@ final class Settings { parser.setInput(in, null); parseRuntimePermissionsLPr(parser, userId); - // Any error while parsing is fatal. - } catch (Throwable t) { + } catch (XmlPullParserException | IOException e) { throw new IllegalStateException("Failed parsing permissions file: " - + permissionsFile , t); + + permissionsFile , e); } finally { IoUtils.closeQuietly(in); }