Skip to content

[Bug]: Fatal Exception: java.util.ConcurrentModificationException #1857

Closed
@ayushi-sk

Description

@ayushi-sk

What happened?

Fatal Exception: java.util.ConcurrentModificationException:
       at java.util.ArrayList$Itr.next(ArrayList.java:860)
       at com.onesignal.common.modeling.ModelStore.persist(ModelStore.kt:140)
       at com.onesignal.common.modeling.ModelStore.addItem(ModelStore.kt:108)
       at com.onesignal.common.modeling.ModelStore.addItem$default(ModelStore.kt:98)
       at com.onesignal.common.modeling.ModelStore.add(ModelStore.kt:46)
       at com.onesignal.common.modeling.IModelStore$DefaultImpls.add$default(IModelStore.kt:37)
       at com.onesignal.core.internal.operations.impl.OperationRepo.internalEnqueue(OperationRepo.kt:76)
       at com.onesignal.core.internal.operations.impl.OperationRepo.enqueue(OperationRepo.kt:60)
       at com.onesignal.core.internal.operations.IOperationRepo$DefaultImpls.enqueue$default(IOperationRepo.kt:16)
       at com.onesignal.core.internal.operations.listeners.SingletonModelStoreListener.onModelUpdated(SingletonModelStoreListener.kt:51)
       at com.onesignal.common.modeling.SingletonModelStore$onModelUpdated$1.invoke(SingletonModelStore.kt:50)
       at com.onesignal.common.modeling.SingletonModelStore$onModelUpdated$1.invoke(SingletonModelStore.kt:50)
       at com.onesignal.common.events.EventProducer.fire(EventProducer.kt:44)
       at com.onesignal.common.modeling.SingletonModelStore.onModelUpdated(SingletonModelStore.kt:50)
       at com.onesignal.common.modeling.ModelStore$onChanged$1.invoke(ModelStore.kt:74)
       at com.onesignal.common.modeling.ModelStore$onChanged$1.invoke(ModelStore.kt:74)
       at com.onesignal.common.events.EventProducer.fire(EventProducer.kt:44)
       at com.onesignal.common.modeling.ModelStore.onChanged(ModelStore.kt:74)
       at com.onesignal.common.modeling.Model$notifyChanged$1.invoke(Model.kt:296)
       at com.onesignal.common.modeling.Model$notifyChanged$1.invoke(Model.kt:296)
       at com.onesignal.common.events.EventProducer.fire(EventProducer.kt:44)
       at com.onesignal.common.modeling.Model.notifyChanged(Model.kt:296)
       at com.onesignal.common.modeling.Model.notifyChanged(Model.kt:301)
       at com.onesignal.common.modeling.Model.setOptAnyProperty(Model.kt:201)
       at com.onesignal.common.modeling.Model.setOptAnyProperty$default(Model.kt:188)
       at com.onesignal.common.modeling.MapModel.put(MapModel.kt:47)
       at com.onesignal.common.modeling.MapModel.remove(MapModel.kt:8)
       at com.onesignal.common.modeling.MapModel.put(MapModel.kt:8)
       at com.onesignal.user.internal.UserManager.addTag(UserManager.kt:173)
       at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit(FlowKt__Transform.kt:223)
       at kotlinx.coroutines.flow.StateFlowImpl.collect(StateFlow.kt:396)
       at kotlinx.coroutines.flow.StateFlowImpl$collect$1.invokeSuspend(StateFlow.kt:1)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:235)
       at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:191)
       at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:163)
       at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:474)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:508)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:497)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:368)
       at kotlinx.coroutines.flow.StateFlowSlot.makePending(StateFlowSlot.java:284)
       at kotlinx.coroutines.flow.StateFlowImpl.updateState(StateFlow.kt:349)
       at kotlinx.coroutines.flow.StateFlowImpl.compareAndSet(StateFlow.kt:319)
       at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:15)
       at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:15)
       at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:87)
       at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:66)
       at androidx.datastore.core.SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2.emit(SingleProcessDataStore.java:137)
       at kotlinx.coroutines.flow.FlowKt__LimitKt$dropWhile$1$1.emit(Limit.kt:40)
       at kotlinx.coroutines.flow.StateFlowImpl.collect(StateFlow.kt:396)
       at kotlinx.coroutines.flow.FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:115)
       at androidx.datastore.core.SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1.collect(SingleProcessDataStore.java:114)
       at kotlinx.coroutines.flow.FlowKt__CollectKt.emitAll(FlowKt__Collect.kt:109)
       at kotlinx.coroutines.flow.FlowKt.emitAll(Flow.kt:1)
       at androidx.datastore.core.SingleProcessDataStore$data$1.invokeSuspend(SingleProcessDataStore.kt:117)
       at androidx.datastore.core.SingleProcessDataStore$data$1.invoke(SingleProcessDataStore.kt:13)
       at androidx.datastore.core.SingleProcessDataStore$data$1.invoke(SingleProcessDataStore.kt:13)
       at kotlinx.coroutines.flow.SafeFlow.collectSafely(SafeFlow.java:61)
       at kotlinx.coroutines.flow.AbstractFlow.collect(AbstractFlow.java:230)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:257)
       at android.app.ActivityThread.main(ActivityThread.java:8185)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)

Steps to reproduce?

On using
OneSignal.User.addTag

What did you expect to happen?

Not crash the app

OneSignal Android SDK version

5.0.2

Android version

11, 10

Specific Android models

No response

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions