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