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