@Override public GetTablespaceListResponse getAllTablespaces(RpcController controller, NullProto request) throws ServiceException { rlock.lock(); try { // retrieves tablespaces from catalog store final List<TablespaceProto> tableSpaces = Lists.newArrayList(store.getTablespaces()); // retrieves tablespaces from linked meta data tableSpaces.addAll( Collections2.transform( linkedMetadataManager.getTablespaces(), new Function<Pair<String, URI>, TablespaceProto>() { @Override public TablespaceProto apply(Pair<String, URI> input) { return TablespaceProto.newBuilder() .setSpaceName(input.getFirst()) .setUri(input.getSecond().toString()) .build(); } })); return GetTablespaceListResponse.newBuilder() .setState(OK) .addAllTablespace(tableSpaces) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); throw new ServiceException(t); } finally { rlock.unlock(); } }