Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2370735 authored by Pavel Grafov's avatar Pavel Grafov
Browse files

Avoid using sListeners outside of synchronized block.

Bug: 139477863
Test: atest CtsDeviceConfigTestCases
Test: FrameworksCoreTests:DeviceConfigTest
Test: SettingsProviderTest:DeviceConfigServiceTest
Change-Id: Ifa42570205f00c6a3a280bb71d1b5681bc57e09b
parent 90ad227c
Loading
Loading
Loading
Loading
+5 −10
Original line number Diff line number Diff line
@@ -706,16 +706,11 @@ public final class DeviceConfig {
        synchronized (sLock) {
            for (int i = 0; i < sListeners.size(); i++) {
                if (namespace.equals(sListeners.valueAt(i).first)) {
                    final int j = i;
                    sListeners.valueAt(i).second.execute(new Runnable() {
                        @Override
                        public void run() {
                            Map<String, String> propertyMap = new HashMap(1);
                    final OnPropertiesChangedListener listener = sListeners.keyAt(i);
                    sListeners.valueAt(i).second.execute(() -> {
                        Map<String, String> propertyMap = new ArrayMap<>(1);
                        propertyMap.put(name, value);
                            sListeners.keyAt(j)
                                    .onPropertiesChanged(new Properties(namespace, propertyMap));
                        }

                        listener.onPropertiesChanged(new Properties(namespace, propertyMap));
                    });
                }
            }