1 --- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2 +++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 3 @@ -27,6 +27,8 @@ 4 5 import java.nio.file.spi.FileSystemProvider; 6 import java.security.AccessController; 7 +import java.util.Set; 8 +import java.util.HashSet; 9 import sun.security.action.GetPropertyAction; 10 11 /** 12 @@ -36,6 +38,15 @@ 13 public class DefaultFileSystemProvider { 14 private DefaultFileSystemProvider() { } 15 16 + private static final Set<String> validFileSystemProviders 17 + = new HashSet<String>(); 18 + static { 19 + validFileSystemProviders.add("sun.nio.fs.SolarisFileSystemProvider"); 20 + validFileSystemProviders.add("sun.nio.fs.LinuxFileSystemProvider"); 21 + validFileSystemProviders.add("sun.nio.fs.BsdFileSystemProvider"); 22 + validFileSystemProviders.add("sun.nio.fs.MacOSXFileSystemProvider"); 23 + } 24 + 25 @SuppressWarnings("unchecked") 26 private static FileSystemProvider createProvider(String cn) { 27 Class<FileSystemProvider> c; 28 @@ -57,6 +68,10 @@ 29 public static FileSystemProvider create() { 30 String osname = AccessController 31 .doPrivileged(new GetPropertyAction("os.name")); 32 + String fileSystemProvider = System 33 + .getProperty("java.nio.file.spi.DefaultFileSystemProvider"); 34 + if (validFileSystemProviders.contains(fileSystemProvider)) 35 + return createProvider(fileSystemProvider); 36 if (osname.equals("SunOS")) 37 return createProvider("sun.nio.fs.SolarisFileSystemProvider"); 38 if (osname.equals("Linux")) 39