@@ -2,7 +2,6 @@ package io.ably.lib.objects
22
33import io.ably.lib.objects.state.ObjectsStateChange
44import io.ably.lib.objects.state.ObjectsStateEvent
5- import io.ably.lib.objects.state.ObjectsStateSubscription
65import io.ably.lib.util.EventEmitter
76import io.ably.lib.util.Log
87import kotlinx.coroutines.*
@@ -66,9 +65,9 @@ internal abstract class ObjectsStateCoordinator : ObjectsStateChange, HandlesObj
6665
6766 private val emitterScope = CoroutineScope (Dispatchers .Default .limitedParallelism(1 ) + SupervisorJob ())
6867
69- override fun on (event : ObjectsStateEvent , listener : ObjectsStateChange .Listener ): ObjectsStateSubscription {
68+ override fun on (event : ObjectsStateEvent , listener : ObjectsStateChange .Listener ): ObjectsSubscription {
7069 externalObjectStateEmitter.on(event, listener)
71- return ObjectsStateSubscription {
70+ return ObjectsSubscription {
7271 externalObjectStateEmitter.off(event, listener)
7372 }
7473 }
@@ -105,7 +104,12 @@ internal abstract class ObjectsStateCoordinator : ObjectsStateChange, HandlesObj
105104}
106105
107106private class ObjectsStateEmitter : EventEmitter <ObjectsStateEvent , ObjectsStateChange .Listener >() {
107+ private val tag = " ObjectsStateEmitter"
108108 override fun apply (listener : ObjectsStateChange .Listener ? , event : ObjectsStateEvent ? , vararg args : Any? ) {
109- listener?.onStateChanged(event!! )
109+ try {
110+ listener?.onStateChanged(event!! )
111+ } catch (t: Throwable ) {
112+ Log .e(tag, " Error occurred while executing listener callback for event: $event " , t)
113+ }
110114 }
111115}
0 commit comments