< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page

        

*** 604,614 **** // Only recreate it if not present. A previous attempt to restore may have // gotten an OOM later but keep the mirror if it was created. if (java_mirror() == NULL) { log_trace(cds, mirror)("Recreate mirror for %s", external_name()); ! java_lang_Class::create_mirror(this, loader, module_handle, protection_domain, CHECK); } } #if INCLUDE_CDS_JAVA_HEAP // Used at CDS dump time to access the archived mirror. No GC barrier. --- 604,614 ---- // Only recreate it if not present. A previous attempt to restore may have // gotten an OOM later but keep the mirror if it was created. if (java_mirror() == NULL) { log_trace(cds, mirror)("Recreate mirror for %s", external_name()); ! java_lang_Class::create_mirror(this, loader, module_handle, protection_domain, Handle(), CHECK); } } #if INCLUDE_CDS_JAVA_HEAP // Used at CDS dump time to access the archived mirror. No GC barrier.
*** 684,693 **** --- 684,706 ---- name()->as_klass_external_name(result, (int) name_len + 1); assert(strlen(result) == name_len, ""); strcpy(result + name_len, addr_buf); assert(strlen(result) == name_len + addr_len, ""); return result; + + } else if (ik->is_hidden()) { + // Replace the last '+' char with '/'. + size_t name_len = name()->utf8_length(); + char* result = NEW_RESOURCE_ARRAY(char, name_len + 1); + name()->as_klass_external_name(result, (int)name_len + 1); + for (int index = (int)name_len; index > 0; index--) { + if (result[index] == '+') { + result[index] = '/'; + break; + } + } + return result; } } if (name() == NULL) return "<unknown>"; return name()->as_klass_external_name(); }
< prev index next >