RFR: 8347173: java/net/DatagramSocket/InterruptibleDatagramSocket.java fails with virtual thread factory
Alan Bateman
alanb at openjdk.org
Mon Jan 13 14:38:45 UTC 2025
On Mon, 13 Jan 2025 14:22:40 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review for this test-only change which proposes to skip this test when the `main()` is launched through a virtual thread?
>
> This test was introduced in https://bugs.openjdk.org/browse/JDK-8233018 , before virtual threads were introduced. In its current form the test doesn't take into account the specification of `DatagramSocket.receive()` when a virtual thread is doing the `receive()`. There's already the `test/jdk/java/net/vthread/BlockingSocketOps.java` test which exercises the `receive()` through a virtual thread and verifies its specified behaviour, so we can skip this `InterruptibleDatagramSocket` test when a virtual thread is involved.
>
> With the proposed change, the test no longer fails and is reported as skipped by jtreg.
test/jdk/java/net/DatagramSocket/InterruptibleDatagramSocket.java line 102:
> 100: public static void main(String[] args) throws Exception {
> 101: if (Thread.currentThread().isVirtual()) {
> 102: throw new jtreg.SkippedException("skipping test execution through a virtual thread");
Throwing .SkippedException is good but "through a virtual thread" looks a bit strange, maybe say that the main thread is a virtual thread or the test can only be run in a platform thread.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23074#discussion_r1913291253
More information about the net-dev
mailing list