jmx-dev Codereview: JDK-8065764 javax/management/monitor/CounterMonitorTest.java hangs
shanliang
shanliang.jiang at oracle.com
Tue Dec 2 13:40:29 UTC 2014
Jaroslav Bachorik wrote:
> On 12/01/2014 02:50 PM, shanliang wrote:
>> Hi,
>> please review this test bug fix:
>>
>> webrev:
>> http://cr.openjdk.java.net/~sjiang/JDK-8065764/00/
>>
>> bug:
>> https://bugs.openjdk.java.net/browse/JDK-8065764
>>
>
> test/javax/management/monitor/CounterMonitorTest.java
> L61 - observedValue could be Integer
Could be, but not make difference, observedValue is only used with the
operation "==", like
while (value != observedValue)
> L225-238 - you could replace this block with the usage of Phaser (if
> you'd do that you could completely remove 'observedValue')
Not sure that it is a good idea to remove "observedValue" by using
Phaser, yes using Phaser can tell when the monitor does an observation,
but it is better to know which count value the monitor observed, in case
the thread was waked up accidentally.
Thanks,
Shanliang
>
> -JB-
>
>
>> The test tested the mode "difference", according to the Javadoc:
>> If the counter difference mode is used, the value of the derived
>> gauge is calculated as the difference between the observed counter
>> values for two successive observations.
>>
>> The test set the first value and then waited 2 times of
>> granularityperiod at line 171, hoped that the monitor would get the
>> first observation during this waiting time, but the test could fail
>> because granularityperiod * 2 was not enough and the test did the second
>> set before the monitor did the first observation.
>>
>> It is easy to make the test timeout by commenting out the line 171.
>>
>> The proposed solution is to get informed when the monitor did
>> observation on calling:
>> StdObservedObject.getNbObjects();
>>
>> Thanks,
>> Shanliang
>>
>>
>
More information about the jmx-dev
mailing list