Skip to content

Enhancing stacktraces from RxJava #1708

@maskaravivek

Description

@maskaravivek

Stacktraces from RxJava callables are often not very helpful. They contain no trace of which line in our codebase caused the issue. For eg recently we were trying to figure out a play store crash #1545(C). The below stacktrace doesn't tell which part of the code led to NPE.

java.lang.NullPointerException: 
  at io.reactivex.internal.functions.ObjectHelper.requireNonNull (ObjectHelper.java:39)
  at io.reactivex.internal.operators.observable.ObservableFromCallable.subscribeActual (ObservableFromCallable.java:42)
  at io.reactivex.Observable.subscribe (Observable.java:10901)
  at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run (ObservableSubscribeOn.java:96)
  at io.reactivex.Scheduler$DisposeTask.run (Scheduler.java:452)
  at io.reactivex.internal.schedulers.ScheduledRunnable.run (ScheduledRunnable.java:61)
  at io.reactivex.internal.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:52)
  at java.util.concurrent.FutureTask.run (FutureTask.java:237)
  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 (ScheduledThreadPoolExecutor.java:152)
  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:265)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
  at java.lang.Thread.run (Thread.java:818)

Is there a way to enhance these logs. I found a few libraries for the same:

It would be great if someone who has experience with reactive programming could pitch in with suggestions?

@psh @whym

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions