@Override
protected URLConnection openConnection(URL url) throws IOException {
try {
URI uri = url.toURI();
Path path = Paths.get(uri);
return new PathURLConnection(url, path);
} catch (URISyntaxException e) {
throw new IOException("invalid URL", e);
}
}