comparison src/share/vm/prims/jvm.cpp @ 17889:386dd1c71858

8033150: invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults. Summary: A static method should be preferred during method resolution over an overpass, search the current class as well as its superclasses. Reviewed-by: acorn, coleenp, kamg
author lfoltan
date Mon, 14 Apr 2014 14:27:45 -0400
parents bbfbe9b06038
children 78bbf4d43a14
comparison
equal deleted inserted replaced
17887:cd3c534f8f4a 17889:386dd1c71858
1215 Handle object (THREAD, JNIHandles::resolve(action)); 1215 Handle object (THREAD, JNIHandles::resolve(action));
1216 1216
1217 // get run() method 1217 // get run() method
1218 Method* m_oop = object->klass()->uncached_lookup_method( 1218 Method* m_oop = object->klass()->uncached_lookup_method(
1219 vmSymbols::run_method_name(), 1219 vmSymbols::run_method_name(),
1220 vmSymbols::void_object_signature()); 1220 vmSymbols::void_object_signature(),
1221 Klass::normal);
1221 methodHandle m (THREAD, m_oop); 1222 methodHandle m (THREAD, m_oop);
1222 if (m.is_null() || !m->is_method() || !m()->is_public() || m()->is_static()) { 1223 if (m.is_null() || !m->is_method() || !m()->is_public() || m()->is_static()) {
1223 THROW_MSG_0(vmSymbols::java_lang_InternalError(), "No run method"); 1224 THROW_MSG_0(vmSymbols::java_lang_InternalError(), "No run method");
1224 } 1225 }
1225 1226