Parsely / parsely-android

The official Parse.ly Android toolkit -- for instrumenting your apps with Parse.ly
https://docs.parse.ly/android-sdk/
Other
6 stars 6 forks source link

RuntimeException while executing doInBackground() #118

Open andrewowen opened 3 months ago

andrewowen commented 3 months ago

When swiping back and forth through a large list of pages in a Compose HorizontalPager, the app will eventually crash with this stack trace.

Devices:

Parsley Version: 3.0.6

E FATAL EXCEPTION: AsyncTask #7
Process: ####
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:415)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:381)
at java.util.concurrent.FutureTask.setException(FutureTask.java:250)
at java.util.concurrent.FutureTask.run(FutureTask.java:269)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1029)
at java.util.ArrayList$Itr.next(ArrayList.java:982)
at java.util.AbstractCollection.addAll(AbstractCollection.java:335)
at
com.parsely.parselyandroid.ParselyTracker.persistQueue(ParselyTracker.java:500)
at
com.parsely.parselyandroid.ParselyTracker.access$500(ParselyTracker.java:58)
at
com.parsely.parselyandroid.ParselyTracker$QueueManager.doInBackground(ParselyTracke
r.java:686)
at
com.parsely.parselyandroid.ParselyTracker$QueueManager.doInBackground(ParselyTracke
r.java:679)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
wzieba commented 3 months ago

Hi there 👋 could you please try the newest version of the SDK, 4.1.0? Since 3.x we migrated from android.os.AsyncTask and rewritten concurency logic, which might be failing here.