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.

Reply via email to