On Fri, 17 Dec 2021 16:21:12 GMT, Daniel Jeliński <d...@openjdk.java.net> wrote:

>> Can I please get a review for this test only change which proposes to enable 
>> debug logs from the test that failed intermittently? This change addresses 
>> https://bugs.openjdk.java.net/browse/JDK-8278961.
>> 
>> The change passes the (test specific) `-d` option to enable logs from that 
>> test by default. While I was at it, I even added a few more debug logs 
>> hoping it might provide some hints if/when it fails next.
>> 
>> For reference, a (successful) run of this test will now print something like:
>> 
>> 
>> ----------System.out:(18/930)----------
>> running on OS that supports ICMP port unreachable
>> Testing with class java.net.DatagramSocket
>> tests will be run against destination address localhost/127.0.0.1 port 52682
>> Checking send to connected address ...
>> socket is locally bound to address /127.0.0.1 port 52681
>> received data from address /127.0.0.1 port 52681
>> received data from address /127.0.0.1 port 52681
>> received data from address /127.0.0.1 port 52681
>> received data from address /127.0.0.1 port 52681
>> received data from address /127.0.0.1 port 52681
>> Checking send to non-connected address ...
>> received data from address /127.0.0.1 port 52681
>> Checking send to invalid address ...
>> Got expected exception: java.net.PortUnreachableException
>> Got expected exception: java.net.PortUnreachableException
>> Got expected exception: java.net.PortUnreachableException
>> Got expected exception: java.net.PortUnreachableException
>> Got expected exception: java.net.PortUnreachableException
>
> test/jdk/java/net/DatagramSocket/SendDatagramToBadAddress.java line 182:
> 
>> 180:             } catch (InterruptedIOException ex) {
>> 181:                 print ("socket timeout");
>> 182:             } catch (Exception ex) {
> 
> Can we catch `PortUnreachableException` here instead?

Here too I didn't want to change the current behaviour/code of the test. It's 
not just this catch block but even the one a few lines above which catches 
`InterruptedIOException`. Neither the `send()` nor the `receive()` APIs of 
`DatagramSocket` specify that they throw this specific exception, but the test 
seems to catch it and consider it a socket timeout. So I'm guessing this test 
and the catch block was written with some specific context in mind and I didn't 
want to change that part as part of this PR which only aims to enable logging 
by default. Plus like Mark notes, the spec says `PortUnreachableException` 
"may" be thrown and isn't guaranteed.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6883

Reply via email to