JMC-6256: JMC doesn't respect Long.MIN_VALUE as a missing value

Alex Macdonald almacdon at redhat.com
Thu Dec 13 21:15:26 UTC 2018


Whoops, just realized I hit reply instead of reply-all so this didn't get
sent to list, please find attached an updated patch.

On Thu, Dec 13, 2018 at 10:00 AM Alex Macdonald <almacdon at redhat.com> wrote:

> Hi Marcus,
>
> Thanks for the review and suggestion, I've amended the patch to keep the
> string constants inside TypeHandling.
>
> On Wed, Dec 12, 2018 at 4:48 PM Marcus Hirt <marcus.hirt at oracle.com>
> wrote:
>
>> Hi Alex,
>>
>> Quick comment before going to bed:
>>
>> I don't believe we should externalize Integer.MIN_VALUE etc. They are
>> defined
>> in the java core libraries. One could argue for MISSING_VALUE and
>> MISSING_VALUE_TOOLTIP to be externalized though.
>>
>> Kind regards,
>> Marcus
>>
>>
>> On 2018-12-12, 22:10, "jmc-dev on behalf of Alex Macdonald" <
>> jmc-dev-bounces at openjdk.java.net on behalf of almacdon at redhat.com> wrote:
>>
>>     Hi!
>>
>>     This patch addresses JMC-6256 [0], in which MIN_VALUEs are displayed
>> in
>>     their numeric form instead of being displayed as a N/A or missing
>> value.
>>     For testing purposes, I have been using the memoryleak.jfr recording
>> that
>>     is available as an attachment on JMC-6127 [1].
>>
>>     As per the comments in the bug report, there are 6 cases to consider
>> for
>>     missing values in JMC [2]. Additionally, it may be nice to show the
>> actual
>>     value in parenthesis in the tooltip [3].
>>
>>     Screenshots (album [4]):
>>     Before: https://imgur.com/aoGgzRn [5]
>>     After: https://imgur.com/DVnHQGZ [6]
>>
>>     The culprit here seems to be the way the conditionals in the
>>     "getValueString()" [7][8] end up processing the value. There is a
>>     duplication of the "instanceof IDisplayable" in the JfrPropertySheet
>> [7]
>>     and the TypeHandling [8], and the TypeHandling.getValueString() ends
>> up
>>     being called anyways in the JfrPropertySheet.getValueString(). As a
>> result,
>>     the conditional to see if it's an IDisplayable from the
>> JfrPropertySheet
>>     happens before the conditional to see if it is a min value [9] (which
>> is
>>     where we want to end up in this case).
>>
>>     This patch removes the duplicated conditional from the
>> JfrPropertySheet,
>>     because it is already correctly handled in TypeHandling.
>> Additionally, a
>>     function "getNumericString" has been introduced for the display of the
>>     tooltip. If the value is an IQuantity then "getNumericString" will
>> figure
>>     out which missing value type it is, and display it in the tooltip. If
>> the
>>     value is an IQuantity but not a missing value, then it delegates to
>>     TypeHandling.getValueString(). I've also included a quick unit test to
>>     verify the behaviour of "getNumericString".
>>
>>     Thoughts?
>>
>>     Cheers,
>>
>>     Alex
>>
>>     [0] https://bugs.openjdk.java.net/browse/JMC-6256
>>     [1] https://bugs.openjdk.java.net/browse/JMC-6127
>>     [2]
>>
>> https://bugs.openjdk.java.net/browse/JMC-6256?focusedCommentId=14229297&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14229297
>>     [3]
>>
>> https://bugs.openjdk.java.net/browse/JMC-6256?focusedCommentId=14229296&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14229296
>>     [4] https://imgur.com/a/3BZNHnG
>>     [5] https://imgur.com/aoGgzRn
>>     [6] https://imgur.com/DVnHQGZ
>>     [7]
>>
>> http://hg.openjdk.java.net/jmc/jmc/file/a76a464b3764/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/JfrPropertySheet.java#l307
>>     [8]
>>
>> http://hg.openjdk.java.net/jmc/jmc/file/efeb1e97bec3/core/org.openjdk.jmc.common/src/main/java/org/openjdk/jmc/common/util/TypeHandling.java#l171
>>     [9]
>>
>> http://hg.openjdk.java.net/jmc/jmc/file/efeb1e97bec3/core/org.openjdk.jmc.common/src/main/java/org/openjdk/jmc/common/util/TypeHandling.java#l167
>>
>>
>>
>>
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 6256-1.patch
Type: text/x-patch
Size: 8827 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/jmc-dev/attachments/20181213/8433084f/6256-1-0001.patch>


More information about the jmc-dev mailing list