Skip to content

fix: EDT-threading errors in the channel console and report toolbar - #81

Open
roxblnfk wants to merge 2 commits into
j-plugins:mainfrom
roxblnfk:fix/edt-threading-console-reports
Open

fix: EDT-threading errors in the channel console and report toolbar#81
roxblnfk wants to merge 2 commits into
j-plugins:mainfrom
roxblnfk:fix/edt-threading-console-reports

Conversation

@roxblnfk

@roxblnfk roxblnfk commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

🔍 What was changed

  • The channel console's aggregate tab now prints the per-test Testo icon inlay on the EDT instead of the process-reader thread it receives live output on.
  • The report toolbar buttons resolve their file paths on a pooled thread rather than on the Swing timer's EDT tick, and discard the result if a new run started while the resolve was in flight.

Why?

Both paths called platform APIs from the wrong thread and raised IDE errors during a run:

  • ConsoleViewImpl.performWhenNoDeferredOutput asserts EDT, but the channel aggregate appends chunks off the process-reader thread — every live inlay threw.
  • PhpLocalPathMapper.getLocalPath reads the file index, a slow operation the platform forbids on the EDT, and the report cells polled it twice a second from a Swing timer.

Checklist

  • How was this tested:
    • Built both phpApi variants (252 / 262)
    • Tested manually

fix(report): resolve report paths off the EDT

Both console additions ran platform calls on the wrong thread. The channel aggregate tab appends live output from the process-reader thread, where performWhenNoDeferredOutput asserts EDT. The report toolbar polls from a Swing timer on the EDT, where getLocalPath hits the file index — a slow operation the platform forbids there. The report resolve now runs on a pool thread and drops its result if a rerun started meanwhile, so a stale apply cannot auto-open the previous run's report.

Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant