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