@Override protected void onFailure(Subscriber<? super O> subscriber, Throwable failure) { upStreamCancel(); super.onFailure(subscriber, failure); }
@Override protected void onFailure(Subscriber<? super O> subscriber, Throwable failure) { upStreamCancel(); super.onFailure(subscriber, failure); }
@Override public void subscribe(Subscriber<? super T> subscriber) { Objects.requireNonNull(subscriber, "invalid 'null' subscriber"); Throwable failure = null; synchronized (this) { if (this.subscriber != null) { failure = new IllegalStateException("multiple subscribers not supported"); } else { if (isCancelled()) { failure = new CancellationException(); } else { this.subscriber = subscriber; } } } if (logger.isDebugEnabled()) { logger.debug("{} subscription from {}", this, subscriber); } subscriber.onSubscribe(this); if (failure != null) { onFailure(subscriber, failure); } }
@Override public void subscribe(Subscriber<? super T> subscriber) { Objects.requireNonNull(subscriber, "invalid 'null' subscriber"); Throwable failure = null; synchronized (this) { if (this.subscriber != null) { failure = new IllegalStateException("multiple subscribers not supported"); } else { if (isCancelled()) { failure = new CancellationException(); } else { this.subscriber = subscriber; } } } if (logger.isDebugEnabled()) { logger.debug("{} subscription from {}", this, subscriber); } subscriber.onSubscribe(this); if (failure != null) { onFailure(subscriber, failure); } }
@Override public void request(long n) { Subscriber<? super T> subscriber; Throwable failure = null; synchronized (this) { if (isCancelled()) { return; } subscriber = subscriber(); if (n <= 0) { failure = new IllegalArgumentException("reactive stream violation rule 3.9"); } } if (failure != null) { onFailure(subscriber, failure); } else { onRequest(subscriber, n); } }
@Override public void request(long n) { Subscriber<? super T> subscriber; Throwable failure = null; synchronized (this) { if (isCancelled()) { return; } subscriber = subscriber(); if (n <= 0) { failure = new IllegalArgumentException("reactive stream violation rule 3.9"); } } if (failure != null) { onFailure(subscriber, failure); } else { onRequest(subscriber, n); } }