RFR: 8247614: java/nio/channels/DatagramChannel/Connect.java timed out
Alan Bateman
alanb at openjdk.java.net
Thu Oct 15 13:36:16 UTC 2020
On Thu, 15 Oct 2020 10:53:12 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> Occasional failures of this test have been observed. However it was unclear as to the precise nature of the failure due
>> to minimal logging and multiple features of DatagramChannel being tested in one run. Another issue is that on failure
>> of either a Writer or Reader thread, the thread that did not fail waits until the test itself times out. To attempt
>> to mitigate these factors, the test was modified in the following manner:
>> - Additional logging was added to help locate future points of failure in the test.
>> - On L95, guards were added to make sure the test for a DatagramChannel throwing an AlreadyConnectedException does not
>> end up using the same port as used for the connection on L86-87
>> - `wait(CompletableFuture<?>... futures)` was implemented to throw a CompletionException if either the Reader or Writer
>> fails, rather than waiting for the test to time out.
>>
>> Seeking review in particular on implementation of the `wait(CompletableFuture<?>... futures)` function. As it stands
>> currently the wait function waits for one of the given futures completes exceptionally. If that doesnt happen, it will
>> wait for _all_ futures to complete successfully.
>
> test/jdk/java/nio/channels/DatagramChannel/Connect.java line 59:
>
>> 57: }
>> 58:
>> 59: // This method waits until one of the given CompletableFutures completes exceptionally. In which case, it stops
>> waiting for the other futures and
>
> Formatting: could you split this long line after `exceptionally.` ?
Yes, wildly long lines are annoying when looking at side-by-side diffs.
-------------
PR: https://git.openjdk.java.net/jdk/pull/679
More information about the nio-dev
mailing list