8004288: (fs) Files.probeContentType problems
Reviewed-by: ahgross, sherman
This commit is contained in:
parent
14d39ee359
commit
013fa331c6
@ -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();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user