< prev index next >
src/hotspot/share/classfile/classLoader.cpp
Print this page
@@ -268,18 +268,10 @@
int len = jio_snprintf(path, path_len, "%s%s%s", _dir, os::file_separator(), name);
assert(len == (int)(path_len - 1), "sanity");
// check if file exists
struct stat st;
if (os::stat(path, &st) == 0) {
-#if INCLUDE_CDS
- if (DumpSharedSpaces) {
- // We have already check in ClassLoader::check_shared_classpath() that the directory is empty, so
- // we should never find a file underneath it -- unless user has added a new file while we are running
- // the dump, in which case let's quit!
- ShouldNotReachHere();
- }
-#endif
// found file, open it
int file_handle = os::open(path, 0, 0);
if (file_handle != -1) {
// read contents into resource array
u1* buffer = NEW_RESOURCE_ARRAY(u1, st.st_size);
@@ -642,28 +634,10 @@
}
ls.cr();
}
}
-#if INCLUDE_CDS
-void ClassLoader::check_shared_classpath(const char *path) {
- if (strcmp(path, "") == 0) {
- exit_with_path_failure("Cannot have empty path in archived classpaths", NULL);
- }
-
- struct stat st;
- if (os::stat(path, &st) == 0) {
- if ((st.st_mode & S_IFMT) != S_IFREG) { // is not a regular file
- if (!os::dir_is_empty(path)) {
- tty->print_cr("Error: non-empty directory '%s'", path);
- exit_with_path_failure("CDS allows only empty directories in archived classpaths", NULL);
- }
- }
- }
-}
-#endif
-
void ClassLoader::setup_bootstrap_search_path() {
const char* sys_class_path = Arguments::get_sysclasspath();
if (PrintSharedArchiveAndExit) {
// Don't print sys_class_path - this is the bootcp of this current VM process, not necessarily
// the same as the bootcp of the shared archive.
@@ -711,12 +685,10 @@
ResourceMark rm(THREAD);
char* path = NEW_RESOURCE_ARRAY(char, end - start + 1);
strncpy(path, &class_path[start], end - start);
path[end - start] = '\0';
- check_shared_classpath(path);
-
update_class_path_entry_list(path, false, false);
while (class_path[end] == os::path_separator()[0]) {
end++;
}
@@ -755,11 +727,10 @@
add_to_module_path_entries(path, new_entry);
return;
}
void ClassLoader::setup_module_search_path(const char* path, TRAPS) {
- check_shared_classpath(path);
update_module_path_entry_list(path, THREAD);
}
#endif // INCLUDE_CDS
// Construct the array of module/path pairs as specified to --patch-module
@@ -884,15 +855,10 @@
// Every entry on the system boot class path after the initial base piece,
// which is set by os::set_boot_path(), is considered an appended entry.
update_class_path_entry_list(path, false, true);
}
-#if INCLUDE_CDS
- if (DumpSharedSpaces) {
- check_shared_classpath(path);
- }
-#endif
while (class_path[end] == os::path_separator()[0]) {
end++;
}
}
}
@@ -1080,15 +1046,10 @@
_last_app_classpath_entry = entry;
}
if (entry->is_jar_file()) {
ClassLoaderExt::process_jar_manifest(entry, check_for_duplicates);
- } else {
- if (!os::dir_is_empty(path)) {
- tty->print_cr("Error: non-empty directory '%s'", path);
- exit_with_path_failure("Cannot have non-empty directory in app classpaths", NULL);
- }
}
#endif
}
// Returns true IFF the file/dir exists and the entry was successfully created.
< prev index next >