code: private void executeStorageRead(Request request) {
          try {
              byte[] buffer = new byte[request.length];
              getHandle()
                      .thenComposeAsync(handle -> this.storage.read(handle, request.offset, buffer, 0, buffer.length, request.getTimeout()), this.executor)
                      .thenAcceptAsync(bytesRead -> request.complete(new ByteArraySegment(buffer, 0, bytesRead)), this.executor)
                      .whenComplete((r, ex) -> {
                          if (ex != null) {
                              request.fail(ex);
                          }
  
                          // Unregister the Request after every request fulfillment.
                          finalizeRequest(request);
                      });
          } catch (Throwable ex) {
              if (Exceptions.mustRethrow(ex)) {
                  throw ex;
              }
  
              request.fail(ex);
              finalizeRequest(request);
          }
      }
docs: Executes the Storage Read for the given request.
  
  @param request The request.