--- old/src/hotspot/share/runtime/signature.cpp 2019-05-15 13:57:29.835666595 -0400 +++ new/src/hotspot/share/runtime/signature.cpp 2019-05-15 13:57:29.459664731 -0400 @@ -416,7 +416,13 @@ return Universe::java_mirror(type()); Klass* klass = as_klass(class_loader, protection_domain, failure_mode, CHECK_NULL); if (klass == NULL) return NULL; - return _type == T_VALUETYPE ? ValueKlass::cast(InstanceKlass::cast(klass))->value_mirror() : klass->java_mirror(); + if (klass->is_value()) { + ValueKlass* vk = ValueKlass::cast(InstanceKlass::cast(klass)); + return _type == T_VALUETYPE ? vk->value_mirror() : vk->nullable_mirror(); + } else { + assert(_type != T_VALUETYPE, "must not be value type"); + return klass->java_mirror(); + } } Symbol* SignatureStream::as_symbol_or_null() {