LSP4IJ (Red Hat): file-type detection on the UI thread from the breadcrumbs listener
FixedLSP4IJ is Red Hat’s open-source Language Server Protocol client for IntelliJ-based IDEs. Its issue #1540, open since May 22, 2026, showed “Slow operations are prohibited on EDT”, and the path was still in the current code: LSPBreadcrumbsRefreshListener.breadcrumbsChanged() runs on the UI thread and requested document symbols there, which reaches LSPIJUtils.getFileLanguage(). With read access available on the UI thread, that call can read the file content to detect its type.
Impact, stated plainly: one slow call per open file each time a language server starts. A real break of the platform’s threading rules with a bounded cost, not a constant freeze.
Reported to the maintainer on October 9, 2026, with the exact path in the current code and a suggested fix: run the request on a pooled thread, as another handler in the same class already did, and keep only the restart on the UI thread. The maintainer made that change the same day in commit f38259550e and closed the issue.