提交 9f72d15a 编写于 作者: A alanb

8004288: (fs) Files.probeContentType problems

Reviewed-by: ahgross, sherman
上级 c9d5ecb3
......@@ -1485,10 +1485,19 @@ public final class Files {
// lazy loading of default and installed file type detectors
private static class FileTypeDetectors{
static final FileTypeDetector defaultFileTypeDetector =
sun.nio.fs.DefaultFileTypeDetector.create();
createDefaultFileTypeDetector();
static final List<FileTypeDetector> installeDetectors =
loadInstalledDetectors();
// creates the default file type detector
private static FileTypeDetector createDefaultFileTypeDetector() {
return AccessController
.doPrivileged(new PrivilegedAction<FileTypeDetector>() {
@Override public FileTypeDetector run() {
return sun.nio.fs.DefaultFileTypeDetector.create();
}});
}
// loads all installed file type detectors
private static List<FileTypeDetector> loadInstalledDetectors() {
return AccessController
......
......@@ -67,6 +67,8 @@ public class GnomeFileTypeDetector
NativeBuffer buffer = NativeBuffers.asNativeBuffer(path.getByteArrayForSysCalls());
try {
if (gioAvailable) {
// GIO may access file so need permission check
path.checkRead();
byte[] type = probeUsingGio(buffer.address());
return (type == null) ? null : new String(type);
} else {
......@@ -76,7 +78,6 @@ public class GnomeFileTypeDetector
String s = new String(type);
return s.equals(GNOME_VFS_MIME_TYPE_UNKNOWN) ? null : s;
}
} finally {
buffer.release();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册