code: private <T> Collection<? extends Callable<T>> wrap(Collection<? extends Callable<T>> tasks) {
          List<Callable<T>> wrappedTasks = new ArrayList<Callable<T>>();
          Iterator<? extends Callable<T>> i = tasks.iterator();
          while (i.hasNext()) {
              Callable<T> c = wrap(i.next());
              if (serverStopping)
                  wrappedTasks.add(c);
              else
                  wrappedTasks.add(new CallableWrapper<T>(c));
          }
          return wrappedTasks;
      }
docs: This is private, so handling both interceptors and wrapping in this method for simplicity