toString() should never return null, I think.

  52         @Override  53         public String toString() {  54
       T resolved = val.get();  55             return resolved != null
? resolved.toString() : null;  56         }


I expected methods like waitForCondition to include a timeout with
failure.  I like 10 seconds, being large enough to never be hit spuriously
in tests.

Why not
() -> (long) mbean.getThreadCount(),

 169             ()->{ 170                 curLiveThreadCount =
mbean.getThreadCount(); 171                 return
(long)curLiveThreadCount; 172             },


I worry that
mbean.getThreadCount()
is hard to test since the "system" may spin up and shut down utility
threads at any time.

On Wed, May 13, 2015 at 4:46 AM, Jaroslav Bachorik <
jaroslav.bacho...@oracle.com> wrote:

> On 1.5.2015 21:55, Martin Buchholz wrote:
>
>>
>>
>> On Thu, Apr 30, 2015 at 11:27 AM, Jaroslav Bachorik
>> <jaroslav.bacho...@oracle.com <mailto:jaroslav.bacho...@oracle.com>>
>> wrote:
>>
>>     On 30.4.2015 19:18, Martin Buchholz wrote:
>>
>>         Tests that sleep can almost always be better written some other
>> way.
>>         In this case, I would prefer busy-waiting with timeout until the
>>         expected condition becomes true.
>>
>>
>>     The thing is that in case of a real issue with the thread counters we
>>     a/ would be busy-waiting till the test times out (using an arbitrary
>>     delay is also problematic due to different performance of different
>>     machines running with different configurations)
>>
>>
>> Far less problematic (performance-wise and reliability-wise) than the
>> fixed sleep.
>>
>>     b/ would get a rather confusing message about the test timing out at
>>     the end
>>
>>
>> You can easily improve the error message.
>>
>
> Well, not that easily. It is not possible to get a notification when JTREG
> decides to timeout the test. So you will get the standard JTREG message and
> that's all.
>
> I was able to modify the test to wait for a given condition and provide
> useful messages in case of mismatch and retry. For the price of an
> increased complexity. On the other hand, the test should be much more
> resilient to timing errors caused by slow setups.
>
> Updated webrev: http://cr.openjdk.java.net/~jbachorik/8078143/webrev.01
>
> Thanks,
>
> -JB-
>

Reply via email to