void errorAll(Subscriber<?> a) { Throwable ex = Exceptions.terminate(ERROR, this); for (UnicastProcessor<TRight> up : lefts.values()) { up.onError(ex); } lefts.clear(); rights.clear(); a.onError(ex); }
@Override public void onNext(T t) { if (done || cancelled) { Operators.onNextDropped(t, currentContext()); return; } if (!queue.offer(t)) { Throwable ex = Operators.onOperatorError(null, Exceptions.failWithOverflow(), t, currentContext()); if(onOverflow != null) { try { onOverflow.accept(t); } catch (Throwable e) { Exceptions.throwIfFatal(e); ex.initCause(e); } } onError(Operators.onOperatorError(null, ex, t, currentContext())); return; } drain(); }
Throwable e = Exceptions.terminate(ERROR, this); if (e != Exceptions.TERMINATED) { w.onError(e);
actual.onError(e); for (UnicastProcessor<T> w : ws) { w.onError(e);
@Test public void failAsyncInnerFusion() { UnicastProcessor<Integer> up = UnicastProcessor.create(); StepVerifier.create(Flux.just(1) .hide() .flatMap(f -> up, 1)) .then(() -> up.onNext(1)) .then(() -> up.onNext(2)) .then(() -> up.onError(new Exception("test"))) .expectNext(1, 2) .verifyErrorMessage("test"); }
Throwable err = error; if (err != null) { w.onError(err);
void errorAll(Subscriber<?> a) { Throwable ex = Exceptions.terminate(ERROR, this); for (UnicastProcessor<TRight> up : lefts.values()) { up.onError(ex); } lefts.clear(); rights.clear(); a.onError(ex); }
@Override public void onError(Throwable t) { if (done) { Exceptions.onErrorDropped(t); return; } UnicastProcessor<ByteBuf> w = window; if (w != null) { window = null; w.onError(t); } actual.onError(t); }
@Override public void onNext(T t) { if (done || cancelled) { Operators.onNextDropped(t, currentContext()); return; } if (!queue.offer(t)) { Throwable ex = Operators.onOperatorError(null, Exceptions.failWithOverflow(), t, currentContext()); if(onOverflow != null) { try { onOverflow.accept(t); } catch (Throwable e) { Exceptions.throwIfFatal(e); ex.initCause(e); } } onError(Operators.onOperatorError(null, ex, t, currentContext())); return; } drain(); }
Throwable e = Exceptions.terminate(ERROR, this); if (e != Exceptions.TERMINATED) { w.onError(e);
actual.onError(e); for (UnicastProcessor<T> w : ws) { w.onError(e);
Throwable err = error; if (err != null) { w.onError(err);