RFR JDK-8198253: ThreadInfo.from(CompositeData) assigning fields incorrectly in JDK 9

mandy chung mandy.chung at oracle.com
Wed Feb 21 16:53:04 UTC 2018



On 2/20/18 9:48 PM, Jeremy Manson wrote:
> I think that's a much better approach (I didn't notice the validate 
> method :) )
>
> I think you may want to grab my test changes, or make some similar 
> ones.  Presumably, the tests do not pass with your change.

I ran your test and it passed before posting it.
>
> I think the API wording change is very slightly confusing.
>
>         *       A {@code CompositeData} does not contain this attribute
>           *       when representing a {@code ThreadInfo} of JDK 6 or
>     older version.
>           *       This attribute will be set to {@link
>     Thread#NORM_PRIORITY}.</td>
>
>
> I'd probably say "In such cases" at the beginning of the second 
> sentence.  Also, is there a rule about when you say JDK 6 and when you 
> say Java 6?

Java SE 6 should be the proper terminology be used in this case.  I 
actually try to see if we can use @since instead.  I will take any pass 
on the spec and how it can tie with @since in the getter methods.

I will look at it later today.

Mandy
>
> Jeremy
>
> On Tue, Feb 20, 2018 at 6:41 PM, mandy chung <mandy.chung at oracle.com 
> <mailto:mandy.chung at oracle.com>> wrote:
>
>     Hi Jeremy,
>
>     Another approach is to change
>     ThreadInfoCompositeData::validateCompositeData
>     to validate the given CompositeData.   I also revised
>     ThreadInfoCompositeData to
>     return the default value of the attributes, if not present.
>
>     This is the patch:
>     http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8198253/webrev.00/
>     <http://cr.openjdk.java.net/%7Emchung/jdk11/webrevs/8198253/webrev.00/>
>
>     What do you think?
>     Mandy
>
>
>     On 2/20/18 4:46 PM, Jeremy Manson wrote:
>>     (I dropped serviceability-dev from this thread by mistake!  Oops!)
>>
>>     Okay. Here's the revised patch.  LMK if that's what you had in mind.
>>
>>     http://cr.openjdk.java.net/~jmanson/8198253/webrev.01/
>>     <http://cr.openjdk.java.net/%7Ejmanson/8198253/webrev.01/>
>>
>>     On Fri, Feb 16, 2018 at 6:20 PM, mandy chung
>>     <mandy.chung at oracle.com <mailto:mandy.chung at oracle.com>> wrote:
>>
>>         Hi Jeremy,
>>
>>         lockedMonitors and lockedSynchronizers attribute are not optional if that's
>>         the issue you try to resolve. I think the specification should be clarified.
>>
>>         ThreadInfo::from supports the three different versions for interoperability:
>>         1. CompositeData for JDK 1.5 ThreadInfo with no lockedMonitors and
>>             lockedSynchronizers attribute
>>         2. CompositeData for JDK 6 ThreadInfo with lockedMonitors and lockedSynchronizers
>>             attributes
>>         3. CompositeData for JDK 9 ThreadInfo with lockedMonitors and lockedSynchronizers
>>             attributes and with daemon and priority attribute.
>>
>>         JMX client can connect to a running VM in any version and get back a
>>         proper ThreadInfo.
>>
>>         If ThreadInfo::from is called with a CompositeData containing daemon and
>>         priority attribute but lockedMonitors and lockedSynchronizers attributes are
>>         absent then the given CompositeData is invalid and IllegalArgumentException
>>         should be thrown.
>>
>>         Does this help?
>>
>>         Mandy
>>
>>
>>         On 2/15/18 4:46 PM, Jeremy Manson wrote:
>>>         Hi folks,
>>>
>>>         Been a long time!  I'd like someone to do a code review. 
>>>         This is in code I wrote a few years ago, and got wrong.  At
>>>         the time, David Holmes, Staffan Larsen, and Mandy Chung
>>>         reviewed it.  It does mean that people using
>>>         ThreadInfo.from(CompositeData) may be getting the wrong
>>>         values out for ThreadInfo, so it is definitely worth fixing.
>>>
>>>         The patch below fixes the bug, but is a pretty questionable
>>>         approach.  Better approaches happily considered.
>>>
>>>         Patch:
>>>         http://cr.openjdk.java.net/~jmanson/8198253/webrev.00/
>>>         <http://cr.openjdk.java.net/%7Ejmanson/8198253/webrev.00/>
>>>
>>>         Bug:
>>>         https://bugs.openjdk.java.net/browse/JDK-8198253
>>>         <https://bugs.openjdk.java.net/browse/JDK-8198253>
>>>
>>>         Thanks!
>>>
>>>         Jeremy
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180221/a92ef0c7/attachment.html>


More information about the serviceability-dev mailing list