From 8b630e8edb5ca88efbb581378abefb10dbfd63d7 Mon Sep 17 00:00:00 2001 From: emawby Date: Mon, 7 Aug 2023 13:03:33 -0700 Subject: [PATCH] Make subscribers in EventProducer synchronized This fixes a concurrentmodificationexception --- .../src/main/java/com/onesignal/common/events/EventProducer.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/events/EventProducer.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/events/EventProducer.kt index 713302fa9..7311cf7ff 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/events/EventProducer.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/events/EventProducer.kt @@ -3,6 +3,7 @@ package com.onesignal.common.events import com.onesignal.common.threading.suspendifyOnMain import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import java.util.* /** * A standard implementation that implements [IEventNotifier] and additional functionality to make @@ -13,7 +14,7 @@ open class EventProducer : IEventNotifier { override val hasSubscribers: Boolean get() = _subscribers.any() - private val _subscribers: MutableList = mutableListOf() + private val _subscribers: MutableList = Collections.synchronizedList(mutableListOf()) override fun subscribe(handler: THandler) { _subscribers.add(handler)