Package rx.exceptions

Class MissingBackpressureException

  • All Implemented Interfaces:
    java.io.Serializable

    public class MissingBackpressureException
    extends java.lang.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:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static long serialVersionUID  
    • Method Summary

      • Methods inherited from class java.lang.Throwable

        addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MissingBackpressureException

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

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