@Nonnull @Override public Optional<ProvidedStorageLocation> read(@Nonnull Block block) throws IOException { if (block == null) { throw new IOException("Block cannot be null"); } ReadRequestProto request = ReadRequestProto .newBuilder() .setKey(PBHelperClient.convert(block)) .build(); try { ReadResponseProto response = rpcProxy.read(null, request); ProvidedStorageLocationProto providedStorageLocation = response.getValue(); if (providedStorageLocation.isInitialized()) { return Optional.of(PBHelperClient.convert(providedStorageLocation)); } return Optional.empty(); } catch (ServiceException e) { throw ProtobufHelper.getRemoteException(e); } }