@Override public InMemoryAliasMap.IterationResult list(Optional<Block> marker) throws IOException { ListRequestProto.Builder builder = ListRequestProto.newBuilder(); if (marker.isPresent()) { builder.setMarker(PBHelperClient.convert(marker.get())); } ListRequestProto request = builder.build(); try { ListResponseProto response = rpcProxy.list(null, request); List<KeyValueProto> fileRegionsList = response.getFileRegionsList(); List<FileRegion> fileRegions = fileRegionsList .stream() .map(kv -> new FileRegion( PBHelperClient.convert(kv.getKey()), PBHelperClient.convert(kv.getValue()) )) .collect(Collectors.toList()); BlockProto nextMarker = response.getNextMarker(); if (nextMarker.isInitialized()) { return new InMemoryAliasMap.IterationResult(fileRegions, Optional.of(PBHelperClient.convert(nextMarker))); } else { return new InMemoryAliasMap.IterationResult(fileRegions, Optional.empty()); } } catch (ServiceException e) { throw ProtobufHelper.getRemoteException(e); } }