Hi JC,
Thanks for reviewing.
On 09/12/2018 06:02 PM, JC Beyler wrote:
Hi Per,
I do not know this code but your need to
call heapIterationFractionUpdate seems to be a code smell that something
else could be fixed, no?
Your webrev looks fine to me if I ignore the code smell that comes from
having to call the update call:
When I look at
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java, the
reason it requires that first call is, like you said, that the frame is
created only at the first heapIterationFractionUpdate. However, could we
not test frame and if it is not created, don't try to remove it?
I actually did that initially, but had the feeling people would think
that was an even worse code smell ;) I don't have a strong opinion on
this, so I updated the webrev to check for null instead.
http://cr.openjdk.java.net/~pliden/8209163/webrev.1
cheers,
Per
Thanks,
Jc
On Wed, Sep 12, 2018 at 1:25 AM Per Liden <per.li...@oracle.com
<mailto:per.li...@oracle.com>> wrote:
This patch avoids an assertion, and instead prints a warning, when
trying to show the "Object Histogram" when using ZGC. I also had to add
a call to heapIterationFractionUpdate() so that the update progress
frame is properly created, even when there are not heap regions to walk
over. Without this, you only get a call to heapIterationCompleted(),
with a null frame, which throws a NullPointerException. Always making a
call to heapIterationFractionUpdate(0.0) in the prologue avoids this by
making sure we always created the frame, even if no more fraction
updates will happen.
Bug: https://bugs.openjdk.java.net/browse/JDK-8209163
Webrev: http://cr.openjdk.java.net/~pliden/8209163/webrev.0
/Per
--
Thanks,
Jc