03bb9138ad
Calling FileSystems.newFileSystem(URI, ...) throws a FileSystemAlreadyExistsException if a ZipFileSystem for this URI is already created. We still can use a single instance of ZipFileSystem by calling FileSystems.getFileSystem. In this case we use reference counting to determine when this instance can be safely closed. But we cannot count references if the same ZipFileSystem is used from different class loaders. This patch fixes this issue by creating a file system from Path instead of an URI. Contract of FileSystemProvider.newFileSystem(Path, ...) doesn't imply throwing FileSystemAlreadyExistsException. Issue #KT-37443 fixed