@Override protected Throwable getThrowable() { return new CircuitBreakerOpenException( String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); }
private Exception circuitBreakerOpenException() { return new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); }
public static void isCallPermitted(CircuitBreaker circuitBreaker) { if(!circuitBreaker.isCallPermitted()) { throw new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); } } }
@Override public void onSubscribe(Subscription subscription) { if (SubscriptionHelper.setOnce(this, subscription)) { if (acquireCallPermit()) { childSubscriber.onSubscribe(this); } else { cancel(); childSubscriber.onSubscribe(this); childSubscriber.onError(new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName()))); } } }
new CircuitBreakerOpenException( String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())));
new CircuitBreakerOpenException( String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())));
@Override public Upstream<T> apply(Upstream<? extends T> upstream) throws Exception { return down -> { long start; if (circuitBreaker.isCallPermitted()) { start = System.nanoTime(); upstream.connect(new Downstream<T>() { @Override public void success(T value) { long durationInNanos = System.nanoTime() - start; circuitBreaker.onSuccess(durationInNanos); down.success(value); } @Override public void error(Throwable throwable) { long durationInNanos = System.nanoTime() - start; circuitBreaker.onError(durationInNanos, throwable); handleRecovery(down, throwable); } @Override public void complete() { down.complete(); } }); } else { Throwable t = new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); handleRecovery(down, t); } }; }
Throwable t = new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", breaker.getName())); try { promise.complete(recoveryFunction.apply((Throwable) t));
private Exception circuitBreakerOpenException() { return new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); }
@Override public void onSubscribe(Subscription subscription) { if (SubscriptionHelper.setOnce(this, subscription)) { if (acquireCallPermit()) { childSubscriber.onSubscribe(this); } else { cancel(); childSubscriber.onSubscribe(this); childSubscriber.onError(new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName()))); } } }
@Override public Upstream<T> apply(Upstream<? extends T> upstream) throws Exception { return down -> { long start; if (circuitBreaker.isCallPermitted()) { start = System.nanoTime(); upstream.connect(new Downstream<T>() { @Override public void success(T value) { long durationInNanos = System.nanoTime() - start; circuitBreaker.onSuccess(durationInNanos); down.success(value); } @Override public void error(Throwable throwable) { long durationInNanos = System.nanoTime() - start; circuitBreaker.onError(durationInNanos, throwable); handleRecovery(down, throwable); } @Override public void complete() { down.complete(); } }); } else { Throwable t = new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", circuitBreaker.getName())); handleRecovery(down, t); } }; }
Throwable t = new CircuitBreakerOpenException(String.format("CircuitBreaker '%s' is open", breaker.getName())); try { promise.complete(recoveryFunction.apply((Throwable) t));