Future.cancel() return value was pretty consistent before CompletableFuture
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
Future<Void> foo = executor.submit(() -> {
try {
Thread.sleep(TimeUnit.DAYS.toMillis(1));
} catch (InterruptedException e) {
//ignore
}
return null;