diff options
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationManagerService.java | 28 | 
1 files changed, 16 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index d31c7b54cee5..22c5e853819f 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2078,12 +2078,14 @@ public class NotificationManagerService extends SystemService {                  Slog.w(TAG, "getBackupPayload: cannot backup policy for user " + user);                  return null;              } -            final ByteArrayOutputStream baos = new ByteArrayOutputStream(); -            try { -                writePolicyXml(baos, true /*forBackup*/); -                return baos.toByteArray(); -            } catch (IOException e) { -                Slog.w(TAG, "getBackupPayload: error writing payload for user " + user, e); +            synchronized(mPolicyFile) { +                final ByteArrayOutputStream baos = new ByteArrayOutputStream(); +                try { +                    writePolicyXml(baos, true /*forBackup*/); +                    return baos.toByteArray(); +                } catch (IOException e) { +                    Slog.w(TAG, "getBackupPayload: error writing payload for user " + user, e); +                }              }              return null;          } @@ -2101,12 +2103,14 @@ public class NotificationManagerService extends SystemService {                  Slog.w(TAG, "applyRestore: cannot restore policy for user " + user);                  return;              } -            final ByteArrayInputStream bais = new ByteArrayInputStream(payload); -            try { -                readPolicyXml(bais, true /*forRestore*/); -                savePolicyFile(); -            } catch (NumberFormatException | XmlPullParserException | IOException e) { -                Slog.w(TAG, "applyRestore: error reading payload", e); +            synchronized(mPolicyFile) { +                final ByteArrayInputStream bais = new ByteArrayInputStream(payload); +                try { +                    readPolicyXml(bais, true /*forRestore*/); +                    savePolicyFile(); +                } catch (NumberFormatException | XmlPullParserException | IOException e) { +                    Slog.w(TAG, "applyRestore: error reading payload", e); +                }              }          }  |