< prev index next >
src/java.base/share/classes/java/nio/file/FileSystems.java
Print this page
8213406: (fs) More than one instance of built-in FileSystem observed in heap
Reviewed-by: alanb, cushon, weijun
@@ -86,20 +86,10 @@
*/
public final class FileSystems {
private FileSystems() { }
- // Built-in file system provider
- private static final FileSystemProvider builtinFileSystemProvider =
- sun.nio.fs.DefaultFileSystemProvider.create();
-
- // built-in file system
- private static class BuiltinFileSystemHolder {
- static final FileSystem builtinFileSystem =
- builtinFileSystemProvider.getFileSystem(URI.create("file:///"));
- }
-
// lazy initialization of default file system
private static class DefaultFileSystemHolder {
static final FileSystem defaultFileSystem = defaultFileSystem();
// returns default file system
@@ -116,11 +106,12 @@
return provider.getFileSystem(URI.create("file:///"));
}
// returns default provider
private static FileSystemProvider getDefaultProvider() {
- FileSystemProvider provider = builtinFileSystemProvider;
+ FileSystemProvider provider =
+ sun.nio.fs.DefaultFileSystemProvider.FILE_SYSTEM_PROVIDER;
// if the property java.nio.file.spi.DefaultFileSystemProvider is
// set then its value is the name of the default provider (or a list)
String prop = "java.nio.file.spi.DefaultFileSystemProvider";
String propValue = System.getProperty(prop);
@@ -187,11 +178,11 @@
*/
public static FileSystem getDefault() {
if (VM.isModuleSystemInited()) {
return DefaultFileSystemHolder.defaultFileSystem;
} else {
- return BuiltinFileSystemHolder.builtinFileSystem;
+ return sun.nio.fs.DefaultFileSystemProvider.theFileSystem();
}
}
/**
* Returns a reference to an existing {@code FileSystem}.
< prev index next >