private static URL getUrl(final ContentPackZip contentPackZip) {
        try {
            return new URL(contentPackZip.getUrl());
        } catch (MalformedURLException e) {
            throw new RuntimeException("Url " +
                                       contentPackZip.getUrl() +
                                       " for content pack " +
                                       contentPackZip.getName() +
                                       " and version " +
                                       contentPackZip.getVersion() +
                                       " is badly formed", e);
        }
    }
synchronized to avoid multiple test threads downloading the same pack concurrently
Don't have to worry about other JVM as this method is called under lock on a single common file.
stroom-test-common/src/main/java/stroom/test/common/util/test/ContentPackZipDownloader.java