@Override
    public void onCompletion(T result, Exception exception) {
      // If blob doesn't exist, add it to notFoundCache to avoid querying server nodes again.
      if (exception instanceof RouterException && ((RouterException) exception).getErrorCode()
          .equals(RouterErrorCode.BlobDoesNotExist)) {
        notFoundCache.put(blobId, true);
      }
      if (callback != null) {
        callback.onCompletion(result, exception);
      }
    }
Creates an instance of BlobOperationCallbackWrapper with the given {@code callback}.
@param blobId Blob Id on which operation is requested.
@param callback the {@link Callback} to invoke on operation completion.
ambry-router/src/main/java/com/github/ambry/router/NonBlockingRouter.java