file: URIs and Slashes
It seems that Java is wrong:
Incorrect:
file:////applib/products/a%2Db/abc%5F9/4148.920a/media/start.swf
Correct:file://applib/products/a-b/abc_9/4148.920a/media/start.swf
The URI class handles UNC paths reasonably well, but has some problems. In the Java class libraries, the string representation of a UNC path is as follows:
new File("//SERVER/some/path").toURI().toString() -> "file:////SERVER/some/path
In other words, the URI stores the entire UNC path in the path component of the URI, and leaves the server/authority component empty. As long as you consistently use this string representation you will be able to interact successfully with java.net.URI.