Trusence Every claim has a source
Last updated 19 October 2026 Search Türkçe
← All stories
Models

Structured concurrency becomes final in JDK 28

Teams on JDK 27 can move to the stable API by recompiling without preview flags.

JEP 543 has finalized Structured Concurrency in JDK 28, so StructuredTaskScope is now a stable part of java.util.concurrent after seven preview rounds. For teams already on JDK 27, moving to the final API is just a recompile without --enable-preview, because the API shape stayed the same. The main behavioral model remains that a group of related subtasks is treated as one unit: the scope waits for completion, cancels siblings on failure, and prevents the parent from leaving early. JDK 28 also keeps the newer custom-joiner design from JDK 27, where join() can throw a joiner-specific checked exception directly, while older JDK 26 code must adapt to the replacement of FailedException and the removal of TimeoutException and Joiner.awaitAll().

Why it matters

This takes structured concurrency out of preview and makes StructuredTaskScope a stable part of java.util.concurrent. For teams already on JDK 27, the move is straightforward, while older JDK 26 code still needs API changes because earlier exception types and joiner methods no longer apply. The result is a more settled model for running related subtasks together, with failure and cancellation handled as one unit.

Sources

  • InfoQ