slapperwan / gh4a

Github client for Android
Apache License 2.0
1.68k stars 221 forks source link

Crash on some pull requests #1197

Open qwerty287 opened 2 years ago

qwerty287 commented 2 years ago

Sometime, OctoDroid crashes when accessing specific PRs. This is API-related, it crashes always and not just once when viewing these PRs.

Stacktrace ``` FATAL EXCEPTION: main Process: com.gh4a, PID: 9669 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.gh4a.model.TimelineItem$TimelineReview.addComment(com.meisolsson.githubsdk.model.ReviewComment, com.meisolsson.githubsdk.model.GitHubFile, boolean)' on a null object reference at com.gh4a.fragment.PullRequestConversationFragment.lambda$onCreateDataSingle$11(PullRequestConversationFragment.java:292) at com.gh4a.fragment.-$$Lambda$PullRequestConversationFragment$nBy1BYVbas4toxSYgPI_bwoAxtM.apply(Unknown Source:8) at io.reactivex.internal.functions.Functions$Array4Func.apply(Functions.java:563) at io.reactivex.internal.functions.Functions$Array4Func.apply(Functions.java:550) at io.reactivex.internal.operators.single.SingleZipArray$ZipCoordinator.innerSuccess(SingleZipArray.java:112) at io.reactivex.internal.operators.single.SingleZipArray$ZipSingleObserver.onSuccess(SingleZipArray.java:170) at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70) at io.reactivex.internal.operators.single.SingleCache.onSuccess(SingleCache.java:134) at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70) at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70) at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64) at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70) at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64) at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70) at io.reactivex.internal.operators.observable.ObservableToListSingle$ToListObserver.onComplete(ObservableToListSingle.java:111) at io.reactivex.internal.observers.BasicFuseableObserver.onComplete(BasicFuseableObserver.java:119) at io.reactivex.observers.SerializedObserver.onComplete(SerializedObserver.java:179) at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.drain(ObservableConcatMap.java:205) at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.onComplete(ObservableConcatMap.java:151) at io.reactivex.internal.util.NotificationLite.accept(NotificationLite.java:239) at io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.test(BehaviorSubject.java:569) at io.reactivex.internal.util.AppendOnlyLinkedArrayList.forEachWhile(AppendOnlyLinkedArrayList.java:93) at io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitLoop(BehaviorSubject.java:587) at io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitFirst(BehaviorSubject.java:534) at io.reactivex.subjects.BehaviorSubject.subscribeActual(BehaviorSubject.java:239) at io.reactivex.Observable.subscribe(Observable.java:12267) at io.reactivex.internal.operators.observable.ObservableConcatMap.subscribeActual(ObservableConcatMap.java:53) at io.reactivex.Observable.subscribe(Observable.java:12267) at com.tspoon.traceur.ObservableOnAssembly.subscribeActual(ObservableOnAssembly.java:43) at io.reactivex.Observable.subscribe(Observable.java:12267) at io.reactivex.internal.operators.observable.ObservableToListSingle.subscribeActual(ObservableToListSingle.java:58) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleCache.subscribeActual(SingleCache.java:65) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleZipArray.subscribeActual(SingleZipArray.java:63) at io.reactivex.Single.subscribe(Single.java:3603) at com.tspoon.traceur.SingleOnAssembly.subscribeActual(SingleOnAssembly.java:43) at io.reactivex.Single.subscribe(Single.java:3603) at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 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:923) Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.zipArray(Single.java:1974) at io.reactivex.Single.zip(Single.java:1639) at com.gh4a.fragment.PullRequestConversationFragment.onCreateDataSingle(PullRequestConversationFragment.java:260) at com.gh4a.fragment.ListDataBaseFragment.loadData(ListDataBaseFragment.java:66) at com.gh4a.fragment.ListDataBaseFragment.onViewCreated(ListDataBaseFragment.java:23) at com.gh4a.fragment.IssueFragmentBase.onViewCreated(IssueFragmentBase.java:160) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2987) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:546) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971) at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311) at androidx.fragment.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:274) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092) at androidx.viewpager.widget.ViewPager.setOffscreenPageLimit(ViewPager.java:856) at com.gh4a.BasePagerActivity.updateTabVisibility(BasePagerActivity.java:143) at com.gh4a.BasePagerActivity.invalidatePages(BasePagerActivity.java:61) at com.gh4a.BasePagerActivity.invalidateTabs(BasePagerActivity.java:65) at com.gh4a.activities.PullRequestActivity.lambda$load$6(PullRequestActivity.java:514) at com.gh4a.activities.PullRequestActivity.lambda$load$6$PullRequestActivity(Unknown Source:0) at com.gh4a.activities.-$$Lambda$PullRequestActivity$nFWg86hv32nRF6uhTT2bLAk52TI.accept(Unknown Source:4) at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62) at com.philosophicalhacker.lib.ReactiveLoaders$LoaderSingle$1.onLoadFinished(ReactiveLoaders.java:55) at com.philosophicalhacker.lib.RxLoaderCallbacks.onLoadFinished(RxLoaderCallbacks.java:35) at androidx.loader.app.LoaderManagerImpl$LoaderObserver.onChanged(LoaderManagerImpl.java:250) at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133) at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151) at androidx.lifecycle.LiveData.setValue(LiveData.java:309) at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50) at androidx.loader.app.LoaderManagerImpl$LoaderInfo.setValue(LoaderManagerImpl.java:189) at androidx.loader.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManagerImpl.java:174) at androidx.loader.content.Loader.deliverResult(Loader.java:132) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.safeDeliverResult(RxLoaderCallbacks.java:109) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.access$000(RxLoaderCallbacks.java:44) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader$1.accept(RxLoaderCallbacks.java:80) at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62) at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81) at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7697) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952) Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.map(Single.java:3008) at com.gh4a.utils.RxUtils.lambda$filter$1(RxUtils.java:37) at com.gh4a.utils.-$$Lambda$RxUtils$F5r2vC5ljB9GkPZwSiSwBn3DDfY.apply(Unknown Source:2) at io.reactivex.Single.compose(Single.java:2064) at com.gh4a.fragment.PullRequestConversationFragment.onCreateDataSingle(PullRequestConversationFragment.java:298) ... 44 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.wrap(Single.java:1477) ... 46 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.subscribeOn(Single.java:3675) at com.gh4a.fragment.PullRequestConversationFragment.onCreateDataSingle(PullRequestConversationFragment.java:319) ... 44 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.zipArray(Single.java:1974) at io.reactivex.Single.zip(Single.java:1639) at com.gh4a.fragment.PullRequestConversationFragment.onCreateDataSingle(PullRequestConversationFragment.java:316) ... 44 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.subscribeOn(Single.java:3675) at com.gh4a.utils.RxUtils.doInBackground(RxUtils.java:89) at com.gh4a.fragment.-$$Lambda$M4WxcKwRhxdwJE_KviDWjmlm4R8.apply(Unknown Source:0) at io.reactivex.Single.compose(Single.java:2064) at com.gh4a.fragment.LoadingFragmentBase.lambda$makeLoaderSingle$0(LoadingFragmentBase.java:84) at com.gh4a.fragment.LoadingFragmentBase.lambda$makeLoaderSingle$0$LoadingFragmentBase(Unknown Source:0) at com.gh4a.fragment.-$$Lambda$LoadingFragmentBase$ezeDyxD-UcvSxmfC2g4G7aT29vY.apply(Unknown Source:6) at io.reactivex.Single.compose(Single.java:2064) at com.gh4a.fragment.ListDataBaseFragment.loadData(ListDataBaseFragment.java:67) ... 43 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.observeOn(Single.java:3120) at com.gh4a.utils.RxUtils.doInBackground(RxUtils.java:90) ... 50 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.wrap(Single.java:1477) ... 49 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.subscribeOn(Single.java:3675) at com.philosophicalhacker.lib.ReactiveType$Single.subscribeOn(ReactiveType.java:27) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.onForceLoad(RxLoaderCallbacks.java:76) at androidx.loader.content.Loader.forceLoad(Loader.java:347) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.onStartLoading(RxLoaderCallbacks.java:65) at androidx.loader.content.Loader.startLoading(Loader.java:285) at androidx.loader.app.LoaderManagerImpl$LoaderInfo.onActive(LoaderManagerImpl.java:77) at androidx.lifecycle.LiveData.changeActiveCounter(LiveData.java:390) at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged(LiveData.java:466) at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(LiveData.java:425) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:265) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:307) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:148) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134) at androidx.fragment.app.Fragment.performStart(Fragment.java:3026) at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:589) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:300) ... 38 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.observeOn(Single.java:3120) at com.philosophicalhacker.lib.ReactiveType$Single.observeOn(ReactiveType.java:36) at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.onForceLoad(RxLoaderCallbacks.java:77) ... 53 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.wrap(Single.java:1477) at io.reactivex.Single.compose(Single.java:2064) at com.gh4a.fragment.LoadingFragmentBase.lambda$makeLoaderSingle$0(LoadingFragmentBase.java:85) at com.gh4a.fragment.LoadingFragmentBase.lambda$makeLoaderSingle$0$LoadingFragmentBase(Unknown Source:0) at com.gh4a.fragment.-$$Lambda$LoadingFragmentBase$ezeDyxD-UcvSxmfC2g4G7aT29vY.apply(Unknown Source:6) at io.reactivex.Single.compose(Single.java:2064) at com.gh4a.fragment.ListDataBaseFragment.loadData(ListDataBaseFragment.java:67) at com.gh4a.fragment.ListDataBaseFragment.onViewCreated(ListDataBaseFragment.java:23) at com.gh4a.fragment.IssueFragmentBase.onViewCreated(IssueFragmentBase.java:160) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2987) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:546) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) ... 38 more Caused by: com.tspoon.traceur.TraceurException: Debug Exception generated at call site at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1736) at io.reactivex.Single.wrap(Single.java:1477) ... 45 more ```
Fs00 commented 2 years ago

Could you please post the links of those specific PRs?

qwerty287 commented 2 years ago

I'm not sure, but maybe this fixes itself for pull requests after a while... One where I can reproduce it is https://github.com/woodpecker-ci/woodpecker/pull/861.

Fs00 commented 2 years ago

I'm not able to reproduce it... might have been a temporary glitch in GH API. The error is also weird because it seems caused by the API returning inconsistent data between different endpoints, which is something that should never happen.

mueller-ma commented 1 year ago

This crash happens for me on PR https://github.com/openhab/openhab-android/pull/3337 whenever I open it through a notification or the PR list in that repo.

sebastien46 commented 1 year ago

still happens, for example with guardianproject/orbot#913

Fs00 commented 1 year ago

The crash you encountered @sebastien46 is different from the one reported above and occurs consistently, I think it would be best to open a new issue for that one.

qwerty287 commented 1 year ago

Stacktrace is the same for me on this PR, but with a different method:

FATAL EXCEPTION: main
Process: com.gh4a, PID: 15285
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.meisolsson.githubsdk.model.User.login()' on a null object reference
    at com.gh4a.fragment.PullRequestConversationFragment.loadHeadReference(PullRequestConversationFragment.java:510)
    at com.gh4a.fragment.PullRequestConversationFragment.onViewCreated(PullRequestConversationFragment.java:124)
    at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2987)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:546)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
    at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971)
    at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)
    at androidx.fragment.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:274)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.setOffscreenPageLimit(ViewPager.java:856)
    at com.gh4a.BasePagerActivity.updateTabVisibility(BasePagerActivity.java:143)
    at com.gh4a.BasePagerActivity.invalidatePages(BasePagerActivity.java:61)
    at com.gh4a.BasePagerActivity.invalidateTabs(BasePagerActivity.java:65)
    at com.gh4a.activities.PullRequestActivity.lambda$load$6(PullRequestActivity.java:533)
    at com.gh4a.activities.PullRequestActivity.$r8$lambda$nFWg86hv32nRF6uhTT2bLAk52TI(Unknown Source:0)
    at com.gh4a.activities.PullRequestActivity$$ExternalSyntheticLambda4.accept(Unknown Source:4)
    at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62)
    at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70)
    at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70)
    at com.philosophicalhacker.lib.ReactiveLoaders$LoaderSingle$1.onLoadFinished(ReactiveLoaders.java:55)
    at com.philosophicalhacker.lib.RxLoaderCallbacks.onLoadFinished(RxLoaderCallbacks.java:35)
    at androidx.loader.app.LoaderManagerImpl$LoaderObserver.onChanged(LoaderManagerImpl.java:250)
    at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
    at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
    at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
    at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
    at androidx.loader.app.LoaderManagerImpl$LoaderInfo.setValue(LoaderManagerImpl.java:189)
    at androidx.loader.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManagerImpl.java:174)
    at androidx.loader.content.Loader.deliverResult(Loader.java:132)
    at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.safeDeliverResult(RxLoaderCallbacks.java:109)
    at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader.access$000(RxLoaderCallbacks.java:44)
    at com.philosophicalhacker.lib.RxLoaderCallbacks$RxAndroidLoader$1.accept(RxLoaderCallbacks.java:80)
    at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62)
    at com.tspoon.traceur.SingleOnAssembly$OnAssemblySingleObserver.onSuccess(SingleOnAssembly.java:70)
    at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
    at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7880)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)