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

mandy chung mandy.chung at oracle.com
Wed Feb 28 18:08:47 UTC 2018


Hi Daniel,

The from method validates the CompositeType regardless of the attribute 
value is null or not. In addition, the CompositeData also  I updated the 
test to make sure that's the case.

I tweak the wording s/composite data/composite type/ to avoid the ambiguity.
  
      * The {@code "lockedStackFrame"} attribute in
      * {@link MonitorInfo#from(CompositeData) MonitorInfo}'s composite type
      * must represent {@code StackTraceElement} of the same version <em>N</em>.

Mandy

On 2/28/18 3:07 AM, Daniel Fuchs wrote:
> Hi Mandy,
>
> This looks very good.
>
> In the API documentation of ThreadInfo::from, below the table
> that lists the attributes of StackTraceElement, I wonder if the
> following text should be added for completeness:
>
> ```A CompositeData representing a MonitorInfo of version N must 
> contain a lockedStackTrace attribute that is either null if 
> stackDepth  < 0, or is a CompositeData representing a 
> StackTraceElement of version N.```
>
> What do you think?
>
> best regards,
>
> -- danie
>
> On 27/02/2018 20:31, mandy chung wrote:
>> I made further edits to the javadoc and I am happy with this version 
>> (move out the attributes for StackTraceElement as a separate table).
>>
>> Specdiff:
>> http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8198253/specdiff/overview-summary.html 
>>
>>
>> javadoc:
>> http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8198253/api/java/lang/management/ 
>>
>>
>> Webrev:
>> http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8198253/webrev.02/
>>
>> Mandy
>>
>> On 2/27/18 10:55 AM, mandy chung wrote:
>>> Good point, Jeremy.  I notice some strange-ness when I wrote it but
>>> wasn't able to pin point the error.  Daniel also suggests to clarify
>>> MonitorInfo as well.
>>>
>>> Does this version look better?
>>>
>>>       * Returns a {@code ThreadInfo} object represented by the
>>>       * given {@code CompositeData}.
>>>       * <a id="attributes"></a>
>>>       * A {@code CompositeData} representing a {@code ThreadInfo} of
>>>       * version <em>N</em> must contain all of the attributes defined
>>>       * in version ≤ <em>N</em> unless specified otherwise.
>>>       * Same rule applies transitively to attributes whose type or
>>>       * component type is {@code CompositeType}.
>>>       * <p>
>>>       * A {@code CompositeData} representing {@code ThreadInfo} of 
>>> version
>>>       * <em>N</em> contains {@code "stackTrace"} attribute representing
>>>       * an array of {@code StackTraceElement} of version <em>N</em>.
>>>       * The {@code "lockedMonitors"} attribute represents
>>>       * an array of {@link MonitorInfo} of version <em>N</em>
>>>       * which implies that its {@code "lockedStackFrame"} attribute 
>>> also
>>>       * represents {@code StackTraceElement} of the same version, 
>>> <em>N</em>.
>>>       * Otherwise, this method will throw {@code 
>>> IllegalArgumentException}.
>>>
>>> Mandy
>>
>

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


More information about the serviceability-dev mailing list