RFR: Lambda: 8026066 Invokeinterface throw ICCE for static methods
Coleen Phillimore
coleen.phillimore at oracle.com
Mon Dec 2 15:35:38 PST 2013
Karen, This looks good. It's subtle that you only have to look in the
immediate class and not up the hierarchy for resolve_interface_method
because the incoming class is always an interface now, but I like it.
For resolve_method() is it true that the incoming class is never an
interface? I think then you can remove the check and require_methodref
in that case. That would be a good change.
I have two nits. Can you realign the parameters in the calls where you
added a parameter so that the lines aren't so long? The second is that
the names nostatics is odd. I think it would be more discriptive as
disallow_static_methods or something like that. The other boolean
checkpolymorphism should be check_polymorphism (this is a nit but it's
the coding style and more readable). I don't know why it's false for
the interface method case.
The other thing is can you add "@ignore until bug 8028741 is fixed" in
test test/runtime/8026365/InvokeSpecialAnonTest.java with this
putback? It'll keep us at 0 failures until the other bug is fixed.
Coleen
On 11/30/2013 05:39 PM, Karen Kinnear wrote:
> Please review:
>
> webrev: http://cr.openjdk.java.net/~acorn/8026066.3/webrev
> bug: https://bugs.openjdk.java.net/browse/JDK-8026066
>
> Fix invokeinterface, invokespecial and invokestatic to all use common interface method
> resolution and invokeinterface and invokespecial to throw ICCE if a static method is found.
> Thanks to Harold for the fix for the linkResolver lookup_instance_method_in_klasses. This
> fix passes here and is specifically tested by 8028438 coming next for review.
>
> Note: causes hotspot/test/runtime/8026365/InvokeSpecialAnonTest.java to fail - should
> be fixed by Lois with 8028741 - skip static and non-public methods in j.l.Object.
> I added this failure comment to that bug, hopefully in the correct syntax to show up as a known bug
> and so Lois could use that as a partial test.
>
> Tests run:
> defmeth
> jck.lang, jck.vm
> jtreg java.util, java.lang, lambda
> jtreg langtools/test/lambdaShapes/.../test/vm
> 2009 invoke* tests
> hotspot jtreg: runtime, compiler
> nsk vm.quick, vm.mlvm
> itabletests/intfbug
>
> thanks,
> KAren
More information about the hotspot-runtime-dev
mailing list