$ diff api-25 api-26 (signature lines only; the first line of each file names the build) < public static StructuredTaskScope open(StructuredTaskScope$Joiner, Function); > public static StructuredTaskScope open(StructuredTaskScope$Joiner, UnaryOperator); < public default boolean onFork(StructuredTaskScope$Subtask); < public default boolean onComplete(StructuredTaskScope$Subtask); > public default boolean onFork(StructuredTaskScope$Subtask); > public default boolean onComplete(StructuredTaskScope$Subtask); > public default void onTimeout(); < public static StructuredTaskScope$Joiner>> allSuccessfulOrThrow(); < public static StructuredTaskScope$Joiner anySuccessfulResultOrThrow(); > public static StructuredTaskScope$Joiner> allSuccessfulOrThrow(); > public static StructuredTaskScope$Joiner anySuccessfulOrThrow(); < public static StructuredTaskScope$Joiner>> allUntil(Predicate>); > public static StructuredTaskScope$Joiner>> allUntil(Predicate>); $ diff api-26 api-27 (signature lines only; the first line of each file names the build) < public interface StructuredTaskScope extends AutoCloseable { < public static StructuredTaskScope open(StructuredTaskScope$Joiner, UnaryOperator); < public static StructuredTaskScope open(StructuredTaskScope$Joiner); < public static StructuredTaskScope open(); > public interface StructuredTaskScope extends AutoCloseable { > public static StructuredTaskScope open(StructuredTaskScope$Joiner, UnaryOperator); > public static StructuredTaskScope open(StructuredTaskScope$Joiner); > public static StructuredTaskScope open(UnaryOperator); > public static StructuredTaskScope open(); < public abstract R join() throws InterruptedException; > public abstract R join() throws R_X, InterruptedException; < public interface StructuredTaskScope$Joiner { > public interface StructuredTaskScope$Joiner { < public default void onTimeout(); < public abstract R result() throws Throwable; < public static StructuredTaskScope$Joiner> allSuccessfulOrThrow(); < public static StructuredTaskScope$Joiner anySuccessfulOrThrow(); < public static StructuredTaskScope$Joiner awaitAllSuccessfulOrThrow(); < public static StructuredTaskScope$Joiner awaitAll(); < public static StructuredTaskScope$Joiner>> allUntil(Predicate>); > public abstract R result() throws R_X; > public abstract R timeout() throws R_X; > public static StructuredTaskScope$Joiner, R_X> allSuccessfulOrThrow(Function); > public static StructuredTaskScope$Joiner, ExecutionException> allSuccessfulOrThrow(); > public static StructuredTaskScope$Joiner anySuccessfulOrThrow(Function); > public static StructuredTaskScope$Joiner anySuccessfulOrThrow(); > public static StructuredTaskScope$Joiner awaitAllSuccessfulOrThrow(Function); > public static StructuredTaskScope$Joiner awaitAllSuccessfulOrThrow(); > public static StructuredTaskScope$Joiner>, RuntimeException> allUntil(Predicate>); $ diff api-27 api-28 (signature lines only; the first line of each file names the build) (no difference) $ jimage list modules | grep -E 'FailedException|TimeoutException|CancelledByTimeout' (25.0.5+8-LTS) java/util/concurrent/StructuredTaskScope$FailedException.class java/util/concurrent/StructuredTaskScope$TimeoutException.class $ jimage list modules | grep -E 'FailedException|TimeoutException|CancelledByTimeout' (26.0.2.1+1) java/util/concurrent/StructuredTaskScope$FailedException.class java/util/concurrent/StructuredTaskScope$TimeoutException.class $ jimage list modules | grep -E 'FailedException|TimeoutException|CancelledByTimeout' (27.0.1.0.2+1) java/util/concurrent/StructuredTaskScope$CancelledByTimeoutException.class $ jimage list modules | grep -E 'FailedException|TimeoutException|CancelledByTimeout' (28-beta+21-ea) java/util/concurrent/StructuredTaskScope$CancelledByTimeoutException.class $ javap -v StructuredTaskScope | grep 'PreviewFeature(' -A1 (26.0.2.1+1) jdk.internal.javac.PreviewFeature( feature=Ljdk/internal/javac/PreviewFeature$Feature;.STRUCTURED_CONCURRENCY $ javap -v StructuredTaskScope | grep 'PreviewFeature(' -A1 (27.0.1.0.2+1) jdk.internal.javac.PreviewFeature( feature=Ljdk/internal/javac/PreviewFeature$Feature;.STRUCTURED_CONCURRENCY $ javap -v StructuredTaskScope | grep 'PreviewFeature(' -A1 (28-beta+21-ea) (no @PreviewFeature annotation: the API is final)