@Override
    public boolean cancel(boolean mayInterruptIfRunning) {
        boolean cancelled = original.cancel(mayInterruptIfRunning);
        try {
            return peel().cancel(mayInterruptIfRunning);
        } catch (CancellationException e) {
            // ignore; cancelled before scheduled-in
            ignore();
        }

        return cancelled;
    }
@Test
    public void cancel_twice() {
        ScheduledFuture<Future<Integer>> original = taskScheduler.schedule(new SimpleCallableTestTask(), 10, TimeUnit.SECONDS);
        ScheduledFuture stripper = new DelegatingScheduledFutureStripper<Future<Integer>>(original);

        stripper.cancel(true);
        stripper.cancel(true);
    }