From bf59e7edd489ad3342d3c0816b0ea163088a7416 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Mon, 16 Oct 2023 21:02:03 +0000 Subject: MusicFxHelper: avoid modify AudioSession list while iterating Make a copy of the audioSession list before iterating over it. Bug: 305724110 Bug: 265114634 Test: Tets MusicFx with YoutubeMusic Change-Id: I2a1f9470802c77d6f93724dba1515d8a69a96aff Merged-In: I2a1f9470802c77d6f93724dba1515d8a69a96aff --- services/core/java/com/android/server/audio/MusicFxHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/audio/MusicFxHelper.java b/services/core/java/com/android/server/audio/MusicFxHelper.java index 6c0fef5f628d..5f4e4c3bc4e0 100644 --- a/services/core/java/com/android/server/audio/MusicFxHelper.java +++ b/services/core/java/com/android/server/audio/MusicFxHelper.java @@ -157,7 +157,8 @@ public class MusicFxHelper { Log.w(TAG, " inside handle MSG_EFFECT_CLIENT_GONE"); // Once the uid is no longer running, close all remain audio session(s) for this UID if (mClientUidSessionMap.get(Integer.valueOf(uid)) != null) { - final List sessions = mClientUidSessionMap.get(Integer.valueOf(uid)); + final List sessions = + new ArrayList(mClientUidSessionMap.get(Integer.valueOf(uid))); Log.i(TAG, "UID " + uid + " gone, closing " + sessions.size() + " sessions"); for (Integer session : sessions) { Intent intent = new Intent( -- cgit v1.2.3-59-g8ed1b