Engineering & Evidence

Third-party plugin audits

Findings in plugins built by other vendors, traced from a public error report to the code that causes it and sent to the maintainers with the root cause and a suggested fix. A finding appears here once the fix is public: a commit, a pull request or release notes.

Fixed by the maintainers

Findings closed after the maintainers shipped the fix.

lsp4ij#1540 ↗

LSP4IJ (Red Hat): file-type detection on the UI thread from the breadcrumbs listener

Fixed

LSP4IJ 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.

See also: JetBrains Platform tickets