JetBrains Said No Static Tool Catches This Freeze Bug. We Built One — And Found a Real Instance in Their Own Code.
Description and use
Background ReadAction Freeze Companion identified a real IntelliJ freeze bug that was not caught by existing static analysis tools.
Problem
IntelliJ IDE freezes caused by background threads calling blocking, non‑cancellable read‑lock APIs while a write action is pending, with no existing static‑analysis tool detecting the pattern.
Outcome
The plugin successfully identified a real freeze bug in JetBrains’ own code, leading to a filed issue and a suggested fix.
Workflow
- Identify background‑thread entry points
- Build interprocedural call‑graph traversal to blocking read‑lock APIs
- Distinguish deprecated vs discouraged APIs
- Detect cancellation checks and downgrade hits
- Validate against intellij‑community source
- Add uncovered background entry points
- Run on Java test‑execution module
- Find real hit in SearchForTestsTask
- File issue IJPL‑254654 with source reference and fix suggestion
Evidence
there's no static tool that catches this today. Detection is manual — reading a thread dump after the freeze already happened in someone's real IDE.
Background ReadAction Freeze Companion, a free, open-source IntelliJ Platform plugin that statically traces exactly this pattern.
I filed it: IJPL-254654, with the exact source reference and a suggested fix mirroring the pattern already used nine lines above it.
- Record date: 2026-10-01T16:40:46.457Z