bugsnag/bugsnag-android

AbstractMethodError in SDK

Closed this issue · 2 comments

We've been getting a spike of these errors in production. Please let me know if you think this is on the client side or need any more info.

Stack trace

java.lang.AbstractMethodError: abstract method "void java.util.Observer.update(java.util.Observable, java.lang.Object)"
        at java.util.Observable.notifyObservers(Observable.java:163)
        at com.bugsnag.android.BaseObservable.notifyObservers(BaseObservable.kt:8)
        at com.bugsnag.android.BreadcrumbState.add(BreadcrumbState.kt:39)
        at com.bugsnag.android.Client.leaveAutoBreadcrumb(Client.java:879)
        at com.bugsnag.android.Client$1.invoke(Client.java:127)
        at com.bugsnag.android.Client$1.invoke(Client.java:121)
        at com.bugsnag.android.ConnectivityApi24$ConnectivityTrackerCallback.onAvailable(ConnectivityCompat.kt:124)
        at android.net.ConnectivityManager$NetworkCallback.onAvailable(ConnectivityManager.java:2785)
        at android.net.ConnectivityManager$CallbackHandler.handleMessage(ConnectivityManager.java:2984)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.os.HandlerThread.run(HandlerThread.java:65)

Thread dump

Thread 2 - main
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:447)
       at java.util.concurrent.FutureTask.get(FutureTask.java:205)
       at com.bugsnag.android.EventStore.flushOnLaunch(EventStore.java:87)
       at com.bugsnag.android.Client.<init>(Client.java:231)
       at com.bugsnag.android.Bugsnag.start(Bugsnag.java:65)
       at br.com.ifood.initializers.root.BugsnagInitializer.create(BugsnagInitializer.kt:29)
       at br.com.ifood.app_startup.initializers.LibraryInitializerDefaultExecutor.execute(LibraryInitializerDefaultExecutor.kt:24)
       at br.com.ifood.application.CustomApplication.initializeLibraries(CustomApplication.kt:84)
       at br.com.ifood.application.CustomApplication.onCreate(CustomApplication.kt:71)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1176)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6107)
       at android.app.ActivityThread.access$1200(ActivityThread.java:212)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1806)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6912)
       at java.lang.reflect.Method.invoke(Method.java:-2)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)

Thread 13660 - Jit thread pool worker thread 0

Thread 13661 - Signal Catcher

Thread 13662 - ReferenceQueueDaemon
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
       at java.lang.Daemons$Daemon.run(Daemons.java:103)
       at java.lang.Thread.run(Thread.java:764)

Thread 13663 - FinalizerDaemon
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Object.wait(Object.java:422)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
       at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
       at java.lang.Daemons$Daemon.run(Daemons.java:103)
       at java.lang.Thread.run(Thread.java:764)

Thread 13664 - FinalizerWatchdogDaemon
       at java.lang.Thread.sleep(Thread.java:-2)
       at java.lang.Thread.sleep(Thread.java:373)
       at java.lang.Thread.sleep(Thread.java:314)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
       at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
       at java.lang.Daemons$Daemon.run(Daemons.java:103)
       at java.lang.Thread.run(Thread.java:764)

Thread 13665 - HeapTaskDaemon

Thread 13666 - Binder:16698_1

Thread 13667 - Binder:16698_2

Thread 13668 - Binder:16698_3

Thread 13669 - Profile Saver

Thread 13671 - ScionFrontendApi
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13675 - firebase-iid-executor
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.4.0:6)
       at java.lang.Thread.run(Thread.java:764)

Thread 13676 - queued-work-looper
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
       at android.os.MessageQueue.next(MessageQueue.java:326)
       at android.os.Looper.loop(Looper.java:160)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13677 - pool-4-thread-1
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13679 - Firebase-Messaging-Topics-Io
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.4.0:6)
       at java.lang.Thread.run(Thread.java:764)

Thread 13680 - Firebase-Messaging-Trigger-Topics-Io
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.4.0:6)
       at java.lang.Thread.run(Thread.java:764)

Thread 13681 - FirebaseInstanceId
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.4.0:6)
       at java.lang.Thread.run(Thread.java:764)

Thread 13682 - Measurement Worker
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Object.wait(Object.java:422)
       at com.google.android.gms.measurement.internal.zzfz.run(com.google.android.gms:play-services-measurement-impl@@17.4.3:25)

Thread 13695 - firebase-installations-executor-1
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13698 - kotlinx.coroutines.DefaultExecutor
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at kotlinx.coroutines.DefaultExecutor.run(DefaultExecutor.kt:82)
       at java.lang.Thread.run(Thread.java:764)

Thread 13699 - DefaultDispatcher-worker-1
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Thread 13700 - DefaultDispatcher-worker-2
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Thread 13701 - DefaultDispatcher-worker-3
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Thread 13702 - DefaultDispatcher-worker-4
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Thread 13703 - DefaultDispatcher-worker-5
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Thread 13704 - GoogleApiHandler
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
       at android.os.MessageQueue.next(MessageQueue.java:326)
       at android.os.Looper.loop(Looper.java:160)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13706 - logThread
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(com.google.android.gms:play-services-basement@@17.4.0:11)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown:4)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown:25)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown:47)
       at java.lang.reflect.Method.invoke(Method.java:-2)
       at com.amplitude.api.DeviceInfo$CachedInfo.getAndCacheGoogleAdvertisingId(DeviceInfo.java:222)
       at com.amplitude.api.DeviceInfo$CachedInfo.getAdvertisingId(DeviceInfo.java:203)
       at com.amplitude.api.DeviceInfo$CachedInfo.<init>(DeviceInfo.java:56)
       at com.amplitude.api.DeviceInfo$CachedInfo.<init>(DeviceInfo.java:41)
       at com.amplitude.api.DeviceInfo.getCachedInfo(DeviceInfo.java:285)
       at com.amplitude.api.DeviceInfo.prefetch(DeviceInfo.java:291)
       at com.amplitude.api.AmplitudeClient$1.run(AmplitudeClient.java:272)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:193)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13707 - httpThread
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
       at android.os.MessageQueue.next(MessageQueue.java:326)
       at android.os.Looper.loop(Looper.java:160)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13710 - pool-11-thread-1
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13712 - Bugsnag IO thread
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13713 - Bugsnag Default thread
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13714 - bugsnag-anr-collector
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
       at android.os.MessageQueue.next(MessageQueue.java:326)
       at android.os.Looper.loop(Looper.java:160)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13715 - process reaper
       at java.lang.Object.wait(Object.java:-2)
       at java.lang.Thread.parkFor$(Thread.java:2137)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
       at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
       at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Thread 13717 - ConnectivityThread
       at java.util.Observable.notifyObservers(Observable.java:163)
       at com.bugsnag.android.BaseObservable.notifyObservers(BaseObservable.kt:8)
       at com.bugsnag.android.BreadcrumbState.add(BreadcrumbState.kt:39)
       at com.bugsnag.android.Client.leaveAutoBreadcrumb(Client.java:879)
       at com.bugsnag.android.Client$1.invoke(Client.java:127)
       at com.bugsnag.android.Client$1.invoke(Client.java:121)
       at com.bugsnag.android.ConnectivityApi24$ConnectivityTrackerCallback.onAvailable(ConnectivityCompat.kt:124)
       at android.net.ConnectivityManager$NetworkCallback.onAvailable(ConnectivityManager.java:2785)
       at android.net.ConnectivityManager$CallbackHandler.handleMessage(ConnectivityManager.java:2984)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Thread 13718 - Bugsnag Error thread
       at java.util.concurrent.ThreadLocalRandom.nextSecondarySeed(ThreadLocalRandom.java:948)
       at java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:852)
       at java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1957)
       at java.util.concurrent.ConcurrentSkipListSet.add(ConcurrentSkipListSet.java:243)
       at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
       at com.bugsnag.android.FileStore.findStoredFiles(FileStore.java:206)
       at com.bugsnag.android.EventStore.flushLaunchCrashReport(EventStore.java:95)
       at com.bugsnag.android.EventStore$2.run(EventStore.java:78)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

Hi @gabrielfeo, would you be able to write in to support@bugsnag.com with a link to the error in your Bugsnag Dashboard so that we can investigate further? Thanks!

Hi @gabrielfeo
Closing this, as has been discussed via email.

For future travellers:
This is unusual as these kind of errors are usually caught at compile time. The only way that an AbstractMethodError could be thrown at run time is if a class definition is changed after the executing method was last compiled:https://developer.android.com/reference/java/lang/AbstractMethodError

Given that it was occurring for a single user we suspect that this is a result of bytecode manipulation, ie the user somehow modified the class definitions themselves, for example by decompiling the apk and altering the bytecode. We would not expect this to be a normal occurrence and was not reproducible.