8213406: (fs) More than one instance of built-in FileSystem observed in heap

Reviewed-by: alanb, cushon, weijun
This commit is contained in:
Martin Buchholz 2018-11-28 14:28:28 -08:00
parent 978c78f7fc
commit 7212bf0a77
14 changed files with 106 additions and 53 deletions

View file

@ -31,7 +31,7 @@ import java.io.IOException;
* Bsd implementation of FileSystemProvider
*/
public class BsdFileSystemProvider extends UnixFileSystemProvider {
class BsdFileSystemProvider extends UnixFileSystemProvider {
public BsdFileSystemProvider() {
super();
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -25,19 +25,29 @@
package sun.nio.fs;
import java.nio.file.spi.FileSystemProvider;
import java.nio.file.FileSystem;
/**
* Creates this platform's default FileSystemProvider.
*/
public class DefaultFileSystemProvider {
private static final MacOSXFileSystemProvider INSTANCE
= new MacOSXFileSystemProvider();
private DefaultFileSystemProvider() { }
/**
* Returns the default FileSystemProvider.
* Returns the platform's default file system provider.
*/
public static FileSystemProvider create() {
return new MacOSXFileSystemProvider();
public static MacOSXFileSystemProvider instance() {
return INSTANCE;
}
/**
* Returns the platform's default file system.
*/
public static FileSystem theFileSystem() {
return INSTANCE.theFileSystem();
}
}

View file

@ -34,7 +34,7 @@ import sun.security.action.GetPropertyAction;
* MacOSX implementation of FileSystemProvider
*/
public class MacOSXFileSystemProvider extends BsdFileSystemProvider {
class MacOSXFileSystemProvider extends BsdFileSystemProvider {
public MacOSXFileSystemProvider() {
super();
}