RFR: SA: clhsdb 'printall' throws ClassCastException while printing out the bytecodes

Jini George jini.george at oracle.com
Fri Feb 9 03:55:39 UTC 2018


Thank you, David!

- Jini.

On 2/9/2018 9:18 AM, David Holmes wrote:
> Hi Jini,
> 
> On 8/02/2018 6:59 PM, Jini George wrote:
>> Thank you very much, David and Serguei for the review.
>>
>> David, based on your comments, I took a relook at the fix and I have 
>> modified it. Since this is an object array klass, the search for the 
>> method needs to be done among the methods of the superclass 
> 
> Okay I think that makes sense - the only methods an array has are those 
> of Object.
> 
>> (java.lang.Object). The modified webrev is at:
>>
>> http://cr.openjdk.java.net/~jgeorge/8175384/webrev.02/index.html
> 
> Changes look good. Please update the bug report with the actual 
> issue/solution.
> 
> Thanks,
> David
> 
>> I have addressed the other comments.
>>
>> Thank you,
>> Jini.
>>
>> On 1/25/2018 8:00 AM, David Holmes wrote:
>>> Hi Jini,
>>>
>>> On 25/01/2018 3:43 AM, Jini George wrote:
>>>> Hello,
>>>>
>>>> Requesting reviews for the issue:
>>>>
>>>> SA: clhsdb 'printall' throws ClassCastException while printing out 
>>>> the bytecodes
>>>>
>>>> ID: https://bugs.openjdk.java.net/browse/JDK-8175384
>>>> Webrev: http://cr.openjdk.java.net/~jgeorge/8175384/webrev.01/
>>>>
>>>> The issue was seen while printing out the details of the 
>>>> invokevirtual bytecode of the java.lang.Enum.values() method. The 
>>>> fix is to avoid a ClassCastException by returning the bottom klass 
>>>> in the case of an object array klass, while printing out the details.
>>>
>>> I'm a bit confused as to what getFieldOrMethodKlassRefAt is supposed 
>>> to be returning - should it really be instanceKlass? It's not at all 
>>> clear to me that returning the array component type is the right 
>>> thing to do.
>>>
>>> That aside a couple of minor nits:
>>>
>>> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java 
>>>
>>>
>>> !       k = (k.isObjArrayKlass())?((ObjArrayKlass)k).getBottomKlass():k;
>>>
>>> No () needed around k.isObjArrayKlass()
>>> Spaces needed around the ? and : operators
>>>
>>> test/hotspot/jtreg/serviceability/sa/ClhsdbLauncher.java
>>>
>>> Copyright year should now be "2017, 2018,"
>>>
>>> Thanks,
>>> David
>>>
>>>> Tests run: The SA tests pass with Mach5 and jprt.
>>>>
>>>> Thanks,
>>>> Jini.


More information about the serviceability-dev mailing list