RFR: 7093328: JVMTI: jvmtiPrimitiveFieldCallback always report 0's for static primitives

Coleen Phillimore coleen.phillimore at oracle.com
Wed Aug 29 10:54:32 PDT 2012


Rickard,   Hotspot-rt just froze for a week.   Can you wait to check 
this in until after the PermGen repository merge which will take most of 
next week)?
thanks,
Coleen

On 8/29/2012 10:42 AM, Coleen Phillimore wrote:
>
> Rickard,
> This change looks good.   Is there a test for this?  Is it possible to 
> add a jtreg test for this and add it to test/serviceability directory?
> This code is different in the permgen elimination repository because 
> we don't pass klasses as oops.   I'll start with the test in the bug 
> but it would be great to have a jtreg test for it so we know if we 
> broke it.
>
> thanks,
> Coleen
>
> On 8/29/2012 10:25 AM, Daniel D. Daugherty wrote:
>> On 8/29/12 8:16 AM, Daniel D. Daugherty wrote:
>>> Logistics issue: This review request went out to OpenJDK alias, but
>>> I think this webrev is not accessible outside of Oracle. The webrev
>>> should be publicly accessible when the review is public. However,
>>> in this case, this is a one line fix so IMHO you could get away with
>>> a context diff in the suggested fix of the bug report.
>>>
>>> On 8/29/12 1:24 AM, Rickard Bäckman wrote:
>>>> Hi all,
>>>>
>>>> can I get a couple of reviews for the following bug fix:
>>>>
>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7093328
>>>> webrev: http://rbackman.se.oracle.com/~rbackman/7093328/
>>>>
>>>> Thanks
>>>> /R
>>>
>>> Thumbs up.
>>>
>>> src/share/vm/prims/jvmtiTagMap.cpp
>>>     No content comments.
>>>
>>>     This is a perfect example of how casting can bite you. :-)
>>>
>>>     The buggy line:
>>>
>>>     1165     address addr = (address)k + offset;
>>>
>>>     dates back to the original implementation of this function:
>>>
>>>     src/share/vm/prims/SCCS/s.jvmtiTagMap.cpp
>>>     D 1.47 05/08/22 20:30:26 ab23780 77 76  01476/01330/01852
>>>     MRs:
>>>     COMMENTS:
>>>     6195957: further clean-up and caching of field maps
>>>
>>>     In the buggy code, a value is copied from the instanceKlass
>>>     at the offset instead of from the Java mirror. If the value
>>>     copied from the instanceKlass happened to match the expected
>>>     value, then that was pure luck.
>>>
>>>     The bug report claims that this last "worked" in 6u26. I suspect
>>>     that "working" is defined as returning a non-zero value.
>>>
>>> Dan
>>
>> Rickard,
>>
>> Very nice find:
>>
>>> I did some research (archeology), the change that introduced this:
>>>
>>> changeset:   2223:c7f3d0b4570f
>>> user:        never
>>> date:        Fri Mar 18 16:00:34 2011 -0700
>>> summary:     7017732: move static fields into Class to prepare for 
>>> perm ten removal
>>
>> I had forgotten that static fields moved from the instanceKlass
>> into Class. The original code from 2005 did indeed work as expected
>> way back then. In fact, there were three such uses in jvmtiTagMap.cpp
>> back then and it looks like the other two uses were updated to use
>> the Java mirror and one was missed.
>>
>> Dan
>>


More information about the hotspot-runtime-dev mailing list