From e56f73da83d6c335c3f12f3134fa5d9792a67945 Mon Sep 17 00:00:00 2001 From: Albert Vaca Cintora Date: Thu, 20 Apr 2023 12:01:53 +0200 Subject: [PATCH] Fix ConcurrentModificationException when device disconnects while iterating --- .../SystemVolumePlugin/SystemVolumePlugin.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java b/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java index 6520e62b..5b5ecd24 100644 --- a/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java +++ b/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java @@ -67,8 +67,10 @@ public class SystemVolumePlugin extends Plugin { Log.e("KDEConnect", "Exception", e); } - for (SinkListener l : listeners) { - l.sinksChanged(); + synchronized(listeners) { + for (SinkListener l : listeners) { + l.sinksChanged(); + } } } else { @@ -140,11 +142,15 @@ public class SystemVolumePlugin extends Plugin { } void addSinkListener(SinkListener listener) { - listeners.add(listener); + synchronized(listeners) { + listeners.add(listener); + } } void removeSinkListener(SinkListener listener) { - listeners.remove(listener); + synchronized(listeners) { + listeners.remove(listener); + } } }