RFR(XS) 8130669: VM prohibits <clinit> methods with return values

harold seigel harold.seigel at oracle.com
Wed Jul 8 16:58:43 UTC 2015


Hi Karen,

Thanks for the review and catching that comment.  I'll update it.

Harold

On 7/8/2015 12:41 PM, Karen Kinnear wrote:
> Harold,
>
> I like your code changes and your tests.
>
> One small comment:
> 1. verifier.cpp around line 2849 - could you possibly fix the comment - it says
> "Class file parser verifies that methods with '<' have void return"
> -- we only check <init> now which is what that logic cares about
>
> thanks,
> Karen
>
>
> On Jul 8, 2015, at 9:32 AM, harold seigel wrote:
>
>> Hi,
>>
>> Please review this small change to fix bug JDK-8130669.  The JVM incorrectly throws ClassFormatError exceptions for non-void methods named <clinit>.  But, the JVM Spec 8 says that such <clinit> methods should be ignored.  See http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9 for details.
>>
>> The fix changes the JVM to, in this case, only throw ClassFormatError exceptions for non-void <init> methods.
>>
>> Open Webrev: http://cr.openjdk.java.net/~hseigel/bug_8130669/
>>
>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8130669
>>
>> The fix was tested with JCK Lang and VM tests, the UTE quick and split_verifier tests, and the hotspot, java/io, java/lang, and java/util JTreg tests.
>>
>> Thanks, Harold



More information about the hotspot-runtime-dev mailing list