<T extends Throwable> V handleError(T e) throws T {
      final AtomicReference ref = new AtomicReference(SENTINEL);
      errorHandler.onErrorReturn(e, new Callback<V>() {
        @Override
        public void onSuccess(V value) {
          ref.set(value);
        }

        @Override
        public void onError(Throwable t) {
        }
      });
      Object result = ref.get();
      if (SENTINEL == result) throw e;
      return (V) result;
    }
Returns a copy of this object, so you can make an identical follow-up request.
zipkin/src/main/java/zipkin2/Call.java