Review request for 8058322: Zero name_index item of MethodParameters attribute cause MalformedParameterException

Eric McCorkle eric.mccorkle at oracle.com
Thu Oct 30 14:06:58 UTC 2014


On 10/30/14 05:50, David Holmes wrote:
> May as well try to review this now ...
> 
> Erik, given:
> 
>  814     name = NULL;
>  815   }
>  816
>  817   Handle rh = java_lang_reflect_Parameter::create(CHECK_NULL);
>  818   java_lang_reflect_Parameter::set_name(rh(), name());
> 
> How is name() handled when name is NULL? Is it some implicit conversion
> operator at play?

name() == NULL when name == NULL.  The end result is that the Java
reflection code gets a Parameter object with name == null, which is what
we want.

> Thanks,
> David
> 
> On 30/10/2014 7:44 PM, David Holmes wrote:
>> On 30/10/2014 6:39 PM, Albert Noll wrote:
>>> On 10/29/2014 06:00 PM, Eric McCorkle wrote:
>>>> I need a second for hotspot changes, if I recall?
>>> For simple changes, 1 review is enough.
>>
>> Runtime requires 2 reviewers - can't speak for other teams. "simple" is
>> too subjective.
>>
>> David
>>
>>> Best,
>>> Albert
>>>
>>>> On 10/29/14 12:20, Coleen Phillimore wrote:
>>>>> Looks good, Eric.
>>>>>
>>>>> thanks,
>>>>> Coleen
>>>>>
>>>>> On 10/29/14, 10:59 AM, Eric McCorkle wrote:
>>>>>> Hello,
>>>>>>
>>>>>> Please review this simple change which addresses a failure
>>>>>> condition in
>>>>>> the method parameter reflection implementation.  In the initial
>>>>>> implementation of method parameter reflection, a parameter with a
>>>>>> parameter_name index of 0 denoted a parameter with no name, and
>>>>>> the VM
>>>>>> translated this into the empty string when creating the Parameter
>>>>>> object
>>>>>> to return to Java code.  However, towards the end of the 8 cycle, the
>>>>>> spec was updated to state that a zero parameter_name index should
>>>>>> denote
>>>>>> a parameter with no name, and should result in Parameter.getName()
>>>>>> returning an empty string, whereas the empty string /constant/ is
>>>>>> expressly forbidden as a parameter name, and should result in
>>>>>> MalformedParametersException.  The reflection API was updated to
>>>>>> reflect
>>>>>> this behavior, but it seems the VM still translates a parameter_name
>>>>>> index of 0 into the empty string.  This patch removes that,
>>>>>> resulting in
>>>>>> correct behavior of the reflection API for parameters with no name.
>>>>>>
>>>>>> The webrev is here:
>>>>>> http://cr.openjdk.java.net/~emc/8058322/
>>>>>>
>>>>>> The bug is here:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8058322
>>>


More information about the hotspot-dev mailing list