[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-runtime-dev
Subject: Re: RFR(S) 8139164: JVM should throw ClassFormatError for non-void methods named <clinit>
From: Lois Foltan <lois.foltan () oracle ! com>
Date: 2015-10-26 18:13:02
Message-ID: 562E6D2E.10005 () oracle ! com
[Download RAW message or body]
On 10/26/2015 11:41 AM, harold seigel wrote:
> Hi Lois,
>
> Thanks for the review.
>
> Methods that start with "<" but are not named "<clinit>" or "<init>"
> are not legal method names and are detected quite early in class file
> parsing by function ClassFileParser::verify_legal_method_name(). That
> allows the subsequent parsing code to know that any method name
> starting with "<" must be either a class initializer or object
> initializer.
>
> Testing for methods whose names start with "<" but are not "<clinit>"
> or "<init>" is a distinct issue from this bug and would require its
> own bug, if need be.
Okay, thanks for pointing that out. Looks good.
Lois
>
> Thanks, Harold
>
> On 10/26/2015 9:15 AM, Lois Foltan wrote:
>> Hi Harold,
>>
>> I think this looks good. I don't see in any of the tests a test for
>> a bogus internal method named something other than <clinit> or
>> <init>. Can you locate one if it exists or add one since your change
>> is now checking all methods that start with "<", not just ones that
>> are equal to vmSymbols::object_initializer_name(). Would this case
>> pass for class files <= 51?
>>
>> Thanks,
>> Lois
>>
>> On 10/26/2015 8:31 AM, harold seigel wrote:
>>> Hi,
>>>
>>> Please review this small change to fix bug 8139164.
>>>
>>> Recent proposed JVM-9 Spec changes (JDK-8130682
>>> <https://bugs.openjdk.java.net/browse/JDK-8130682>) require throwing
>>> ClassFormatError exceptions for class file versions >= 51 for
>>> methods named <clinit> that have one or more arguments or are not
>>> static. This fix implements that change.
>>>
>>> Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8139164/
>>>
>>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8139164
>>>
>>> The fix was tested with JCK Lang, VM, and API java_lang tests, the
>>> UTE quick and split verifier tests, and the hotspot, JDK vm,
>>> java/io, java/lang, and java/util JTreg tests, and the tests
>>> included in this RFR.
>>>
>>> Thanks, Harold
>>
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic