8183238: Obsolete CheckEndorsedAndExtDirs and remove checks for lib/endorsed and lib/ext
Reviewed-by: dholmes, mchung, alanb
This commit is contained in:
parent
590eded063
commit
526bcdab19
@ -1,5 +1,5 @@
|
|||||||
'\" t
|
'\" t
|
||||||
.\" Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved.
|
.\" Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
.\"
|
.\"
|
||||||
.\" This code is free software; you can redistribute it and/or modify it
|
.\" This code is free software; you can redistribute it and/or modify it
|
||||||
@ -1178,65 +1178,6 @@ Verify all classes\&.
|
|||||||
.PP
|
.PP
|
||||||
These options control the runtime behavior of the Java HotSpot VM\&.
|
These options control the runtime behavior of the Java HotSpot VM\&.
|
||||||
.PP
|
.PP
|
||||||
\-XX:+CheckEndorsedAndExtDirs
|
|
||||||
.RS 4
|
|
||||||
Enables the option to prevent the
|
|
||||||
\fBjava\fR
|
|
||||||
command from running a Java application if it uses the endorsed\-standards override mechanism or the extension mechanism\&. This option checks if an application is using one of these mechanisms by checking the following:
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBjava\&.ext\&.dirs\fR
|
|
||||||
or
|
|
||||||
\fBjava\&.endorsed\&.dirs\fR
|
|
||||||
system property is set\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/endorsed\fR
|
|
||||||
directory exists and is not empty\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/ext\fR
|
|
||||||
directory contains any JAR files other than those of the JDK\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The system\-wide platform\-specific extension directory contains any JAR files\&.
|
|
||||||
.RE
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-XX:+DisableAttachMechanism
|
\-XX:+DisableAttachMechanism
|
||||||
.RS 4
|
.RS 4
|
||||||
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
||||||
|
@ -512,7 +512,6 @@ static SpecialFlag const special_jvm_flags[] = {
|
|||||||
{ "InitialRAMFraction", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
{ "InitialRAMFraction", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
||||||
{ "UseMembar", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
{ "UseMembar", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
||||||
{ "IgnoreUnverifiableClassesDuringDump", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
{ "IgnoreUnverifiableClassesDuringDump", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
||||||
{ "CheckEndorsedAndExtDirs", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
|
|
||||||
{ "CompilerThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
{ "CompilerThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
||||||
{ "VMThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
{ "VMThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
||||||
{ "PrintSafepointStatistics", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
{ "PrintSafepointStatistics", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
|
||||||
@ -536,6 +535,7 @@ static SpecialFlag const special_jvm_flags[] = {
|
|||||||
{ "ShowSafepointMsgs", JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
{ "ShowSafepointMsgs", JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
{ "FastTLABRefill", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
{ "FastTLABRefill", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
{ "SafepointSpinBeforeYield", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
{ "SafepointSpinBeforeYield", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
|
{ "CheckEndorsedAndExtDirs", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
{ "DeferThrSuspendLoopCount", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
{ "DeferThrSuspendLoopCount", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
{ "DeferPollingPageLoopCount", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
{ "DeferPollingPageLoopCount", JDK_Version::jdk(10), JDK_Version::jdk(11), JDK_Version::jdk(12) },
|
||||||
{ "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
|
{ "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
|
||||||
@ -3302,69 +3302,12 @@ void Arguments::fix_appclasspath() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool has_jar_files(const char* directory) {
|
|
||||||
DIR* dir = os::opendir(directory);
|
|
||||||
if (dir == NULL) return false;
|
|
||||||
|
|
||||||
struct dirent *entry;
|
|
||||||
char *dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(directory), mtArguments);
|
|
||||||
bool hasJarFile = false;
|
|
||||||
while (!hasJarFile && (entry = os::readdir(dir, (dirent *) dbuf)) != NULL) {
|
|
||||||
const char* name = entry->d_name;
|
|
||||||
const char* ext = name + strlen(name) - 4;
|
|
||||||
hasJarFile = ext > name && (os::file_name_strcmp(ext, ".jar") == 0);
|
|
||||||
}
|
|
||||||
FREE_C_HEAP_ARRAY(char, dbuf);
|
|
||||||
os::closedir(dir);
|
|
||||||
return hasJarFile ;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int check_non_empty_dirs(const char* path) {
|
|
||||||
const char separator = *os::path_separator();
|
|
||||||
const char* const end = path + strlen(path);
|
|
||||||
int nonEmptyDirs = 0;
|
|
||||||
while (path < end) {
|
|
||||||
const char* tmp_end = strchr(path, separator);
|
|
||||||
if (tmp_end == NULL) {
|
|
||||||
if (has_jar_files(path)) {
|
|
||||||
nonEmptyDirs++;
|
|
||||||
jio_fprintf(defaultStream::output_stream(),
|
|
||||||
"Non-empty directory: %s\n", path);
|
|
||||||
}
|
|
||||||
path = end;
|
|
||||||
} else {
|
|
||||||
char* dirpath = NEW_C_HEAP_ARRAY(char, tmp_end - path + 1, mtArguments);
|
|
||||||
memcpy(dirpath, path, tmp_end - path);
|
|
||||||
dirpath[tmp_end - path] = '\0';
|
|
||||||
if (has_jar_files(dirpath)) {
|
|
||||||
nonEmptyDirs++;
|
|
||||||
jio_fprintf(defaultStream::output_stream(),
|
|
||||||
"Non-empty directory: %s\n", dirpath);
|
|
||||||
}
|
|
||||||
FREE_C_HEAP_ARRAY(char, dirpath);
|
|
||||||
path = tmp_end + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nonEmptyDirs;
|
|
||||||
}
|
|
||||||
|
|
||||||
jint Arguments::finalize_vm_init_args(bool patch_mod_javabase) {
|
jint Arguments::finalize_vm_init_args(bool patch_mod_javabase) {
|
||||||
// check if the default lib/endorsed directory exists; if so, error
|
// check if the default lib/endorsed directory exists; if so, error
|
||||||
char path[JVM_MAXPATHLEN];
|
char path[JVM_MAXPATHLEN];
|
||||||
const char* fileSep = os::file_separator();
|
const char* fileSep = os::file_separator();
|
||||||
jio_snprintf(path, JVM_MAXPATHLEN, "%s%slib%sendorsed", Arguments::get_java_home(), fileSep, fileSep);
|
jio_snprintf(path, JVM_MAXPATHLEN, "%s%slib%sendorsed", Arguments::get_java_home(), fileSep, fileSep);
|
||||||
|
|
||||||
if (CheckEndorsedAndExtDirs) {
|
|
||||||
int nonEmptyDirs = 0;
|
|
||||||
// check endorsed directory
|
|
||||||
nonEmptyDirs += check_non_empty_dirs(path);
|
|
||||||
// check the extension directories
|
|
||||||
nonEmptyDirs += check_non_empty_dirs(Arguments::get_ext_dirs());
|
|
||||||
if (nonEmptyDirs > 0) {
|
|
||||||
return JNI_ERR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DIR* dir = os::opendir(path);
|
DIR* dir = os::opendir(path);
|
||||||
if (dir != NULL) {
|
if (dir != NULL) {
|
||||||
jio_fprintf(defaultStream::output_stream(),
|
jio_fprintf(defaultStream::output_stream(),
|
||||||
|
@ -1241,9 +1241,6 @@ public:
|
|||||||
product(bool, CheckJNICalls, false, \
|
product(bool, CheckJNICalls, false, \
|
||||||
"Verify all arguments to JNI calls") \
|
"Verify all arguments to JNI calls") \
|
||||||
\
|
\
|
||||||
product(bool, CheckEndorsedAndExtDirs, false, \
|
|
||||||
"Verify the endorsed and extension directories are not used") \
|
|
||||||
\
|
|
||||||
product(bool, UseFastJNIAccessors, true, \
|
product(bool, UseFastJNIAccessors, true, \
|
||||||
"Use optimized versions of Get<Primitive>Field") \
|
"Use optimized versions of Get<Primitive>Field") \
|
||||||
\
|
\
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
'\" t
|
'\" t
|
||||||
.\" Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved.
|
.\" Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
.\"
|
.\"
|
||||||
.\" This code is free software; you can redistribute it and/or modify it
|
.\" This code is free software; you can redistribute it and/or modify it
|
||||||
@ -1173,65 +1173,6 @@ Verify all classes\&.
|
|||||||
.PP
|
.PP
|
||||||
These options control the runtime behavior of the Java HotSpot VM\&.
|
These options control the runtime behavior of the Java HotSpot VM\&.
|
||||||
.PP
|
.PP
|
||||||
\-XX:+CheckEndorsedAndExtDirs
|
|
||||||
.RS 4
|
|
||||||
Enables the option to prevent the
|
|
||||||
\fBjava\fR
|
|
||||||
command from running a Java application if it uses the endorsed\-standards override mechanism or the extension mechanism\&. This option checks if an application is using one of these mechanisms by checking the following:
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBjava\&.ext\&.dirs\fR
|
|
||||||
or
|
|
||||||
\fBjava\&.endorsed\&.dirs\fR
|
|
||||||
system property is set\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/endorsed\fR
|
|
||||||
directory exists and is not empty\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/ext\fR
|
|
||||||
directory contains any JAR files other than those of the JDK\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The system\-wide platform\-specific extension directory contains any JAR files\&.
|
|
||||||
.RE
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-XX:+DisableAttachMechanism
|
\-XX:+DisableAttachMechanism
|
||||||
.RS 4
|
.RS 4
|
||||||
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
'\" t
|
'\" t
|
||||||
.\" Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved.
|
.\" Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
.\"
|
.\"
|
||||||
.\" This code is free software; you can redistribute it and/or modify it
|
.\" This code is free software; you can redistribute it and/or modify it
|
||||||
@ -1173,65 +1173,6 @@ Verify all classes\&.
|
|||||||
.PP
|
.PP
|
||||||
These options control the runtime behavior of the Java HotSpot VM\&.
|
These options control the runtime behavior of the Java HotSpot VM\&.
|
||||||
.PP
|
.PP
|
||||||
\-XX:+CheckEndorsedAndExtDirs
|
|
||||||
.RS 4
|
|
||||||
Enables the option to prevent the
|
|
||||||
\fBjava\fR
|
|
||||||
command from running a Java application if it uses the endorsed\-standards override mechanism or the extension mechanism\&. This option checks if an application is using one of these mechanisms by checking the following:
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBjava\&.ext\&.dirs\fR
|
|
||||||
or
|
|
||||||
\fBjava\&.endorsed\&.dirs\fR
|
|
||||||
system property is set\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/endorsed\fR
|
|
||||||
directory exists and is not empty\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The
|
|
||||||
\fBlib/ext\fR
|
|
||||||
directory contains any JAR files other than those of the JDK\&.
|
|
||||||
.RE
|
|
||||||
.sp
|
|
||||||
.RS 4
|
|
||||||
.ie n \{\
|
|
||||||
\h'-04'\(bu\h'+03'\c
|
|
||||||
.\}
|
|
||||||
.el \{\
|
|
||||||
.sp -1
|
|
||||||
.IP \(bu 2.3
|
|
||||||
.\}
|
|
||||||
The system\-wide platform\-specific extension directory contains any JAR files\&.
|
|
||||||
.RE
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-XX:+DisableAttachMechanism
|
\-XX:+DisableAttachMechanism
|
||||||
.RS 4
|
.RS 4
|
||||||
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as
|
||||||
|
Loading…
x
Reference in New Issue
Block a user