public void cancel() {
   if (state.getAndSet(State.CANCELED) != State.CANCELED) {
     storage.cancel(uuid);
     synchronized (this) {
       for (Future<?> task : asyncTasks) {
         task.cancel(true);
       }
     }
   }
 }
 @Override
 protected void submit(NearlineStorage storage, Iterable<RemoveRequestImpl> requests) {
   storage.remove(transform(requests, Functions.<RemoveRequest>identity()));
 }