Code Quality · JetBrains plugin

CompletableFuture Cancellation Propagation Companion

Free

Concurrency / Async Bugs

IntelliJ-family plugin that flags a .thenCompose(...) chain whose result future can be cancelled, but whose inner future: constructed directly inside the lambda: never receives that cancellation, so the orphaned work keeps running and consuming resources after the caller believes the whole operation stopped.

55Downloads
0GitHub stars
2026-09-02Published
FreePricing

The gap it fixes

CompletableFuture.thenCompose never propagates cancellation into the stage it returns -- calling .cancel(true) on the outer/chained future only marks that future as cancelled; it does not touch the inner CompletableFuture the lambda constructed and is still waiting on. This is a real, repeatedly-reported gap: it shows up in GitHub issues against Reactor Core, Failsafe, and OpenTelemetry's Java instrumentation, each describing the same shape -- a caller cancels what it thinks is the whole async operation, but a supplyAsync/ runAsync stage buried inside a thenCompose lambda keeps exe

Facts and pricing

Category
Code Quality
Pricing
Free
Platform
IntelliJ-family
First published
2026-09-02
Marketplace ID
#34016
Repository
completablefuture-cancellation-companion
Growth
New listing
Need a tool like this built for your codebase?Custom static-analysis rules, CI/CD integration, private plugin distribution and performance audits for IntelliJ plugins.
Work with Joel

Download and star counts as of 2026-10-18, refreshed twice daily from the JetBrains Marketplace and GitHub APIs.