--- a/src/hotspot/share/prims/jvm.cpp Mon Oct 07 07:53:38 2019 +0200
+++ b/src/hotspot/share/prims/jvm.cpp Mon Oct 07 12:06:47 2019 +0200
@@ -990,13 +990,21 @@
ResourceMark rm(THREAD);
Handle h_name (THREAD, JNIHandles::resolve_non_null(name));
- Handle string = java_lang_String::internalize_classname(h_name, CHECK_NULL);
-
- const char* str = java_lang_String::as_utf8_string(string());
+ char* str = java_lang_String::as_utf8_string(h_name());
+
// Sanity check, don't expect null
if (str == NULL) return NULL;
- const int str_len = (int)strlen(str);
+ // Internalize the string, converting '.' to '/' in string.
+ char* p = (char*)str;
+ while (*p != '\0') {
+ if (*p == '.') {
+ *p = '/';
+ }
+ p++;
+ }
+
+ const int str_len = (int)(p - str);
if (str_len > Symbol::max_length()) {
// It's impossible to create this class; the name cannot fit
// into the constant pool.