summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly <beverlyt@google.com> 2019-04-29 11:08:05 -0400
committer Beverly <beverlyt@google.com> 2019-04-29 13:43:09 -0400
commit1ef2ccecdc38a78c2fc90d79bbba1f191b13cbcd (patch)
treeab663e71f3a93f2b3c753fb38e9ac57204b736a9
parent7def7254ea09b16f96b621253dca405b3ed89182 (diff)
Protect against mConfigs changes in writeXml
Test: manual Fixes: 131585941 Change-Id: I0241d876910a6a7008e00e27b846248363978903
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 981e0f58ef2b..f81015dae468 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -80,7 +80,6 @@ import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@@ -731,12 +730,14 @@ public class ZenModeHelper {
public void writeXml(XmlSerializer out, boolean forBackup, Integer version, int userId)
throws IOException {
- final int N = mConfigs.size();
- for (int i = 0; i < N; i++) {
- if (forBackup && mConfigs.keyAt(i) != userId) {
- continue;
+ synchronized (mConfigs) {
+ final int n = mConfigs.size();
+ for (int i = 0; i < n; i++) {
+ if (forBackup && mConfigs.keyAt(i) != userId) {
+ continue;
+ }
+ mConfigs.valueAt(i).writeXml(out, version);
}
- mConfigs.valueAt(i).writeXml(out, version);
}
}