Codereview: JDK-8065764 javax/management/monitor/CounterMonitorTest.java hangs
Daniel Fuchs
daniel.fuchs at oracle.com
Mon Dec 1 14:29:38 UTC 2014
55 // derived gange
56 private volatile int derivedGange = 1;
Typo in both lines: gange -> gauge
- data = new Integer(values[i]);
- echo(">>> Set data = " + data.intValue());
It is strange that you no longer have to set the value to a
different value.
I don't understand how the test can succeed:
first gauge:
data.intValue() - 0 = data.intValue() = 0
second gauge (and so on):
data.intValue() - data.intValue() = 0
how can that ever exceed the threshold of 2?
I must have missed something.
best regards
-- daniel
On 01/12/14 14:50, 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
>
> 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 serviceability-dev
mailing list