@Override public final V execute() throws IOException {
      synchronized (this) {
        if (this.executed) throw new IllegalStateException("Already Executed");
        this.executed = true;
      }

      if (isCanceled()) {
        throw new IOException("Canceled");
      } else {
        return this.doExecute();
      }
    }
Returns a copy of this object, so you can make an identical follow-up request.
zipkin/src/main/java/zipkin2/Call.java