--- old/src/hotspot/share/oops/objArrayKlass.cpp 2020-04-30 06:04:52.225479167 -0400 +++ new/src/hotspot/share/oops/objArrayKlass.cpp 2020-04-30 06:04:51.813468431 -0400 @@ -54,8 +54,8 @@ return new (loader_data, size, THREAD) ObjArrayKlass(n, k, name); } -Klass* ObjArrayKlass::allocate_objArray_klass(ClassLoaderData* loader_data, - int n, Klass* element_klass, TRAPS) { +ObjArrayKlass* ObjArrayKlass::allocate_objArray_klass(ClassLoaderData* loader_data, + int n, Klass* element_klass, TRAPS) { // Eagerly allocate the direct array supertype. Klass* super_klass = NULL; @@ -88,7 +88,7 @@ // Now retry from the beginning ek = element_klass->array_klass(n, CHECK_NULL); } // re-lock - return ek; + return ObjArrayKlass::cast(ek); } } else { // The element type is already Object. Object[] has direct super of Object.