comparison src/share/vm/prims/nativeLookup.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 a9becfeecd1b
children 52b4284cb496
comparison
equal deleted inserted replaced
17887:cd3c534f8f4a 17889:386dd1c71858
1 /* 1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
406 Klass* k = SystemDictionary::resolve_or_fail(c_name, true, CATCH); 406 Klass* k = SystemDictionary::resolve_or_fail(c_name, true, CATCH);
407 instanceKlassHandle klass (THREAD, k); 407 instanceKlassHandle klass (THREAD, k);
408 408
409 // Find method and invoke standard lookup 409 // Find method and invoke standard lookup
410 methodHandle method (THREAD, 410 methodHandle method (THREAD,
411 klass->uncached_lookup_method(m_name, s_name)); 411 klass->uncached_lookup_method(m_name, s_name, Klass::normal));
412 address result = lookup(method, in_base_library, CATCH); 412 address result = lookup(method, in_base_library, CATCH);
413 assert(in_base_library, "must be in basic library"); 413 assert(in_base_library, "must be in basic library");
414 guarantee(result != NULL, "must be non NULL"); 414 guarantee(result != NULL, "must be non NULL");
415 return result; 415 return result;
416 } 416 }