RFR 8030847: java/lang/management/ThreadMXBean/ThreadBlockedCount.java fails intermittently again

Mandy Chung mandy.chung at oracle.com
Wed Jan 8 14:52:29 PST 2014


On 1/8/2014 1:26 AM, David Holmes wrote:
>> IMO, it seems that the ThreadInfo was not updated to reflect the
>> introduction of the park()/unpark() methods. In the current state it
>> mistakenly reports parking a thread as blocking but if the
>> implementation is updated to include only blocking on monitor entry (to
>> correspond to the API docs) we will miss the information about the
>> thread being parked (when the thread also does not execute any user
>> code). This would most probably call for the update of ThreadInfo API.
>
> park() puts you in Thread.State WAITING which is exposed via 
> ThreadInfo.getWaitedCount, so I don't see any issue there. If parking 
> is causing a change to the blocked count then that is a major bug in 
> the underlying MXBean implementation.

David is right that LockSupport.park (and parkUntil or parkNanos) 
transitions the thread state to WAITING (and TIMED_WAITING) [1]. Similar 
to Object.wait, the current thread is waiting for another thread to 
unpark it (i.e. make the permit available for it).

Mandy
[1] 
http://download.java.net/jdk8/docs/api/java/lang/Thread.State.html#WAITING


More information about the serviceability-dev mailing list