On 7/03/2017 11:51 AM, David Holmes wrote:
Hi Chris,
On 7/03/2017 10:57 AM, Chris Plummer wrote:
Hi,
Please review the following simple fix. Explanation of the cause and the
fix are in the CR. Testing so far has only been done with
serviceability/dcmd/gc/FinalizerInfoTest.java as described in the CR. I
think the addition of JPRT push testing will be sufficient.
http://cr.openjdk.java.net/~cjplummer/8175341/webrev.00/webrev.hotspot/
https://bugs.openjdk.java.net/browse/JDK-8175341
Looking at the other potentially-exception-throwing actions in that DCmd
and others, I think a simple delete of the assert and change:
425 vmSymbols::finalizer_histogram_klass(), THREAD);
to
425 vmSymbols::finalizer_histogram_klass(), CHECK);
would suffice. Something upstream has to handle potential errors and the
pending exception in any case.
Oops! This explains why no exception:
424 Klass* k = SystemDictionary::resolve_or_null(
425 vmSymbols::finalizer_histogram_klass(), THREAD);
it uses resolve_or_null, not resolve_or_fail! I think it should use the
latter and simply throw like the other Dcmds.
David
Thanks,
David
thanks,
Chris