@Override
  public void finish(AggregationBuffer myagg, boolean aborted) {
    VectorUDAFBloomFilterMerge.Aggregation agg = (VectorUDAFBloomFilterMerge.Aggregation) myagg;
    if (agg.numThreads > 0) {
      LOG.info("bloom filter merge: finishing aggregation, waiting tasks: {}",
          agg.getNumberOfWaitingMergeTasks());
      agg.shutdownAndWaitForMergeTasks(agg, aborted);
    }
  }
Executor.shutdownNow() is supposed to send Thread.interrupt to worker threads, and they are
supposed to finish their work.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilterMerge.java