Package rx.exceptions

Class MissingBackpressureException

java.lang.Object
java.lang.Throwable
java.lang.Exception
rx.exceptions.MissingBackpressureException
All Implemented Interfaces:
Serializable

public class MissingBackpressureException extends Exception
Represents an exception that indicates that a Subscriber or operator attempted to apply reactive pull backpressure to an Observable that does not implement it.

If an Observable has not been written to support reactive pull backpressure (such support is not a requirement for Observables), you can apply one of the following operators to it, each of which forces a simple form of backpressure behavior:

onBackpressureBuffer
maintains a buffer of all emissions from the source Observable and emits them to downstream Subscribers according to the requests they generate
onBackpressureDrop
drops emissions from the source Observable unless there is a pending request from a downstream Subscriber, in which case it will emit enough items to fulfill the request
If you do not apply either of these operators to an Observable that does not support backpressure, and if either you as the Subscriber or some operator between you and the Observable attempts to apply reactive pull backpressure, you will encounter a MissingBackpressureException which you will be notified of via your onError callback.

There are, however, other options. You can throttle an over-producing Observable with operators like sample/throttleLast, throttleFirst, or throttleWithTimeout/debounce. You can also take the large number of items emitted by an over-producing Observable and package them into a smaller set of emissions by using operators like buffer and window.

For a more complete discussion of the options available to you for dealing with issues related to backpressure and flow control in RxJava, see RxJava wiki: Backpressure.

See Also:
  • Field Details

  • Constructor Details

    • MissingBackpressureException

      public MissingBackpressureException()
      Constructs the exception without any custom message.
    • MissingBackpressureException

      public MissingBackpressureException(String message)
      Constructs the exception with the given customized message.
      Parameters:
      message - the customized message