diff options
| author | 2019-04-29 11:08:05 -0400 | |
|---|---|---|
| committer | 2019-04-29 13:43:09 -0400 | |
| commit | 1ef2ccecdc38a78c2fc90d79bbba1f191b13cbcd (patch) | |
| tree | ab663e71f3a93f2b3c753fb38e9ac57204b736a9 | |
| parent | 7def7254ea09b16f96b621253dca405b3ed89182 (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.java | 13 |
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); } } |