Cancela recursivamente un todo de Futuro Completable

Si tengo

CompletableFuture<Something> future1 = service.request(param1);
CompletableFuture<Something> future2 = service.request(param2);
CompletableFuture<Void> many = CompletableFuture.allOf(future1, future2);

que pasará cuando lo hagamany.cancel()? Seráfuture1&nbsp;yfuture2&nbsp;ser cancelado también? Si no, ¿cuál sería la forma más limpia de lograr esto? Soy reacio a aferrarme afuture1&nbsp;yfuture2, solo para poder cancelarlos cuando quiero cancelarmany.

Algunos antecedentes sobre por qué quiero esto: cuando recibo un dato, necesito solicitar datos coincidentes, potencialmente futuros, para realizar un cálculo. Si llega un dato más nuevo, quiero cancelar la finalización del cómputo anterior, porque el resultado será inmediatamente reemplazado por el nuevo cómputo.