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

Jini George jini.george at oracle.com
Thu Feb 8 08:59:12 UTC 2018


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 
(java.lang.Object). The modified webrev is at:

http://cr.openjdk.java.net/~jgeorge/8175384/webrev.02/index.html

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