8012237: CompletableFuture/Basic.java still fails intermittently

Martin Buchholz martinrb at google.com
Mon Apr 15 17:32:45 UTC 2013


Thanks.  This looks good.

I might additionally:
- rename "phaser" to something more evocative, like "cf3Done"
- add a checkCompletedXXX for the tardy future after the phaser arrives
- check that cf3 result does not change when tardy future completes.


On Mon, Apr 15, 2013 at 10:03 AM, Chris Hegarty <chris.hegarty at oracle.com>wrote:

> On 15/04/2013 17:32, Martin Buchholz wrote:
>
>> This looks good, in that it fixes the flakiness.
>>
>
> Thanks Martin.
>
>
>  I don't think we have tests yet that ensure Either completion when only
>> one task completes.
>> Consider writing one normal async supplier and one that waits on a
>> latch; ensure that the Either future completes with the normal value,
>> then trip the latch to allow the second one to finish.
>>
>
> Great idea. Here you go:
>
> http://cr.openjdk.java.net/~**chegar/8012237/webrev.01/**
> webrev/test/java/util/**concurrent/CompletableFuture/**
> Basic.java.udiff.html<http://cr.openjdk.java.net/~chegar/8012237/webrev.01/webrev/test/java/util/concurrent/CompletableFuture/Basic.java.udiff.html>
>
> -Chris.
>
>
>>
>> On Mon, Apr 15, 2013 at 7:09 AM, Chris Hegarty <chris.hegarty at oracle.com
>> <mailto:chris.hegarty at oracle.**com <chris.hegarty at oracle.com>>> wrote:
>>
>>     I missed three cases in the previous change [1]. That will teach me
>>     for working on the weekend ;-)
>>
>>     A full audit of the use of the XxxEitherXxx methods in the test has
>>     been done, and there are still three particular checks that are
>>     possibly incorrect. The failure is not always seen as this is racy
>> code.
>>
>>     http://cr.openjdk.java.net/~__**chegar/8012237/webrev.00/__**
>> webrev/test/java/util/__**concurrent/CompletableFuture/_**
>> _Basic.java.udiff.html<http://cr.openjdk.java.net/~__chegar/8012237/webrev.00/__webrev/test/java/util/__concurrent/CompletableFuture/__Basic.java.udiff.html>
>>
>>     <http://cr.openjdk.java.net/~**chegar/8012237/webrev.00/**
>> webrev/test/java/util/**concurrent/CompletableFuture/**
>> Basic.java.udiff.html<http://cr.openjdk.java.net/~chegar/8012237/webrev.00/webrev/test/java/util/concurrent/CompletableFuture/Basic.java.udiff.html>
>> >
>>
>>     Thanks,
>>     -Chris.
>>
>>     [1]
>>     http://mail.openjdk.java.net/_**_pipermail/core-libs-dev/2013-**
>> __April/016013.html<http://mail.openjdk.java.net/__pipermail/core-libs-dev/2013-__April/016013.html>
>>     <http://mail.openjdk.java.net/**pipermail/core-libs-dev/2013-**
>> April/016013.html<http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-April/016013.html>
>> >
>>
>>
>>



More information about the core-libs-dev mailing list