Skip to content

When running Java unit tests via Test Runner for Java in WSL2, the UI stays stuck at: Resolving launch configuration... #1854

@inkpark

Description

@inkpark

Bug Description

When running Java unit tests via Test Runner for Java, the UI stays stuck at:
Resolving launch configuration...

Root Cause

VS Code Test Runner for Java 0.44.0 creates a local socket server before launching tests. It uses get-port to pre-select a port, then closes the probe socket and rebinds to the same port on
127.0.0.1. In WSL/Windows port environments, this "pre-select then rebind" pattern causes massive EADDRINUSE failures.

Evidence from VS Code extension log:
Error: listen EADDRINUSE: address already in use 127.0.0.1:46129
Error: listen EADDRINUSE: address already in use 127.0.0.1:46423
Error: listen EADDRINUSE: address already in use 127.0.0.1:46333
Error: listen EADDRINUSE: address already in use 127.0.0.1:46049
Error: listen EADDRINUSE: address already in use 127.0.0.1:45865

Reproduction

The problematic pattern in the extension:

const port = await getPort();  // Step 1: reserve a port
server.listen(port, "127.0.0.1", callback);  // Step 2: rebind to same port
In the affected environment, ~96 out of 100 such attempts fail.

Suggested Fix

Replace the two-step port selection with direct port allocation:
server.listen(0, "127.0.0.1", callback);  // OS auto-assigns a free port
This approach achieves 0 failures in the same environment.

Environment

- OS: Windows + WSL
- VS Code Test Runner for Java: 0.44.0
- Multiple JDKs installed (Java 8, 21, 25)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions