Mercurial > hg > truffle
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 |