> On Sun, Apr 10, 2016 at 2:00 PM, Andrej Golovnin > <andrej.golov...@gmail.com> wrote: >> BTW, someone should describe in the JavaDocs of CompletableFuture#orTimeout() >> what would happen when this method is called multiple times on the same >> CompletableFuture with different arguments. > > Hmmm the javadoc seems clear enough to me. CF can only be completed > once. First to complete wins.
What is the first: the first call to #orTimeout() or the call with the lowest timeout? CompletableFuture cf = ... cf.onTimeout(10L, TimeUnit.MINUTES); // 1. call cf.onTimeout(10L, TimeUnit.SECONDS); // 2. call cf.onTimeout(10L, TimeUnit.HOURS); // 3. call As far as I understand the implementation, the second call wins. What I miss from the JavaDocs is following: It is allowed to call the #onTimeout()-methods multiple times. But it does not mean that subsequent calls would override already defined timeout and that the lowest timeout wins.