private void fetchTasksForNodes(final Consumer<CacheInfoResponse> dataConsumer,
                                    final RestErrorHandler errorHandler,
                                    final List<String> nodeNames) {
        cacheInfoKeys.clear();
        for (final String nodeName : nodeNames) {
            restFactory
                    .create(CACHE_RESOURCE)
                    .method(res -> res.info(cacheName, nodeName))
                    .onSuccess(response -> {
                        responseMap.put(nodeName, response.getValues());

                        cacheInfoKeys.addAll(response.getValues()
                                .stream()
                                .flatMap(resp -> resp.getMap().keySet().stream())
                                .collect(Collectors.toSet()));
                        delayedUpdate.update();
                    })
                    .onFailure(throwable -> {
                        responseMap.remove(nodeName);
                        delayedUpdate.update();
                    })
                    .taskMonitorFactory(getView())
                    .exec();
        }
    }
Crude method to size a column by its header
stroom-core-client/src/main/java/stroom/cache/client/presenter/CacheNodeListPresenter.java