From 44c462ee50e2bdd004c1472d5c2b325e1f9d419e Mon Sep 17 00:00:00 2001 From: Brian Burkhalter Date: Fri, 28 Aug 2015 10:46:43 -0700 Subject: [PATCH] 8133987: (fs) Rename GnomeFileTypeDetector to GioFileTypeDetector Rename class and associated native file as indicated and fix some related comments in the source and test. Reviewed-by: alanb --- jdk/make/lib/NioLibraries.gmk | 2 +- jdk/make/mapfiles/libnio/mapfile-linux | 4 ++-- jdk/make/mapfiles/libnio/mapfile-solaris | 4 ++-- .../classes/sun/nio/fs/LinuxFileSystemProvider.java | 4 ++-- .../classes/sun/nio/fs/SolarisFileSystemProvider.java | 4 ++-- ...FileTypeDetector.java => GioFileTypeDetector.java} | 8 ++++++-- ...{GnomeFileTypeDetector.c => GioFileTypeDetector.c} | 6 +++--- .../file/Files/probeContentType/ParallelProbes.java | 11 ++++++----- 8 files changed, 24 insertions(+), 19 deletions(-) rename jdk/src/java.base/unix/classes/sun/nio/fs/{GnomeFileTypeDetector.java => GioFileTypeDetector.java} (91%) rename jdk/src/java.base/unix/native/libnio/fs/{GnomeFileTypeDetector.c => GioFileTypeDetector.c} (96%) diff --git a/jdk/make/lib/NioLibraries.gmk b/jdk/make/lib/NioLibraries.gmk index b34818325f5..f58610df6c8 100644 --- a/jdk/make/lib/NioLibraries.gmk +++ b/jdk/make/lib/NioLibraries.gmk @@ -47,7 +47,7 @@ endif ifeq ($(OPENJDK_TARGET_OS), macosx) BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) BUILD_LIBNIO_EXFILES += \ - GnomeFileTypeDetector.c \ + GioFileTypeDetector.c \ # endif diff --git a/jdk/make/mapfiles/libnio/mapfile-linux b/jdk/make/mapfiles/libnio/mapfile-linux index c00f6dd5379..428553e122c 100644 --- a/jdk/make/mapfiles/libnio/mapfile-linux +++ b/jdk/make/mapfiles/libnio/mapfile-linux @@ -135,8 +135,8 @@ SUNWprivate_1.1 { Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0; Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs; Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect; - Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; - Java_sun_nio_fs_GnomeFileTypeDetector_probeGio; + Java_sun_nio_fs_GioFileTypeDetector_initializeGio; + Java_sun_nio_fs_GioFileTypeDetector_probeGio; Java_sun_nio_fs_MagicFileTypeDetector_initialize0; Java_sun_nio_fs_MagicFileTypeDetector_probe0; Java_sun_nio_fs_LinuxWatchService_eventSize; diff --git a/jdk/make/mapfiles/libnio/mapfile-solaris b/jdk/make/mapfiles/libnio/mapfile-solaris index 9c5da0e2f31..12f418cad8a 100644 --- a/jdk/make/mapfiles/libnio/mapfile-solaris +++ b/jdk/make/mapfiles/libnio/mapfile-solaris @@ -130,8 +130,8 @@ SUNWprivate_1.1 { Java_sun_nio_ch_SolarisEventPort_port_1get; Java_sun_nio_ch_SolarisEventPort_port_1getn; Java_sun_nio_ch_SolarisEventPort_port_1send; - Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; - Java_sun_nio_fs_GnomeFileTypeDetector_probeGio; + Java_sun_nio_fs_GioFileTypeDetector_initializeGio; + Java_sun_nio_fs_GioFileTypeDetector_probeGio; Java_sun_nio_fs_UnixNativeDispatcher_init; Java_sun_nio_fs_UnixNativeDispatcher_getcwd; Java_sun_nio_fs_UnixNativeDispatcher_strerror; diff --git a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java index 5cf76fb3d05..f6abaf69d7e 100644 --- a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java +++ b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2015, 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 @@ -106,7 +106,7 @@ public class LinuxFileSystemProvider extends UnixFileSystemProvider { new GetPropertyAction("user.home")), ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); - return chain(new GnomeFileTypeDetector(), + return chain(new GioFileTypeDetector(), new MimeTypesFileTypeDetector(userMimeTypes), new MimeTypesFileTypeDetector(etcMimeTypes), new MagicFileTypeDetector()); diff --git a/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java b/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java index d81bac1b656..4fcb617a200 100644 --- a/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java +++ b/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2015, 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 @@ -89,7 +89,7 @@ public class SolarisFileSystemProvider extends UnixFileSystemProvider { new GetPropertyAction("user.home")), ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); - return chain(new GnomeFileTypeDetector(), + return chain(new GioFileTypeDetector(), new MimeTypesFileTypeDetector(userMimeTypes), new MimeTypesFileTypeDetector(etcMimeTypes)); } diff --git a/jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java b/jdk/src/java.base/unix/classes/sun/nio/fs/GioFileTypeDetector.java similarity index 91% rename from jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java rename to jdk/src/java.base/unix/classes/sun/nio/fs/GioFileTypeDetector.java index 88c6839e492..7bedb6292ba 100644 --- a/jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java +++ b/jdk/src/java.base/unix/classes/sun/nio/fs/GioFileTypeDetector.java @@ -35,13 +35,13 @@ import java.security.PrivilegedAction; * MIME type of a file. */ -public class GnomeFileTypeDetector +public class GioFileTypeDetector extends AbstractFileTypeDetector { // true if GIO is available private final boolean gioAvailable; - public GnomeFileTypeDetector() { + public GioFileTypeDetector() { gioAvailable = initializeGio(); } @@ -67,6 +67,10 @@ public class GnomeFileTypeDetector // GIO private static native boolean initializeGio(); + // + // The probeGIO() method is synchronized to avert potential problems + // such as crashes due to a suspected lack of thread safety in GIO. + // private static synchronized native byte[] probeGio(long pathAddress); static { diff --git a/jdk/src/java.base/unix/native/libnio/fs/GnomeFileTypeDetector.c b/jdk/src/java.base/unix/native/libnio/fs/GioFileTypeDetector.c similarity index 96% rename from jdk/src/java.base/unix/native/libnio/fs/GnomeFileTypeDetector.c rename to jdk/src/java.base/unix/native/libnio/fs/GioFileTypeDetector.c index f51129ac6bb..ad46a144fdf 100644 --- a/jdk/src/java.base/unix/native/libnio/fs/GnomeFileTypeDetector.c +++ b/jdk/src/java.base/unix/native/libnio/fs/GioFileTypeDetector.c @@ -73,11 +73,11 @@ static g_file_query_info_func g_file_query_info; static g_file_info_get_content_type_func g_file_info_get_content_type; -#include "sun_nio_fs_GnomeFileTypeDetector.h" +#include "sun_nio_fs_GioFileTypeDetector.h" JNIEXPORT jboolean JNICALL -Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio +Java_sun_nio_fs_GioFileTypeDetector_initializeGio (JNIEnv* env, jclass this) { void* gio_handle; @@ -120,7 +120,7 @@ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio } JNIEXPORT jbyteArray JNICALL -Java_sun_nio_fs_GnomeFileTypeDetector_probeGio +Java_sun_nio_fs_GioFileTypeDetector_probeGio (JNIEnv* env, jclass this, jlong pathAddress) { char* path = (char*)jlong_to_ptr(pathAddress); diff --git a/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java b/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java index afed44efbc5..5d9e805a7d2 100644 --- a/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java +++ b/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java @@ -21,17 +21,18 @@ * questions. */ -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; - /* @test * @summary Test probing content type simultaneously from multiple threads. * @requires (os.family == "linux") | (os.family == "solaris") * @build ParallelProbes SimpleFileTypeDetector * @run main/othervm ParallelProbes 10 */ + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; + public class ParallelProbes { private static final int REPEATS = 1000;