Program: 14852
Project: 14852
Buggy source:
private void startTasks(final String blogId){
  final ThreadPoolExecutor executor=(ThreadPoolExecutor)Executors.newFixedThreadPool(getMaxConcurrentTasks());
  new Thread(){
    @Override public void run(){
      final String today=StatUtils.getCurrentDate();
      final String yesterday=StatUtils.getYesterdaysDate();
      executor.submit(new SummaryTask(blogId));
      executor.submit(new BarChartTask(blogId,StatsBarChartUnit.WEEK));
      executor.submit(new BarChartTask(blogId,StatsBarChartUnit.MONTH));
      executor.submit(new TopPostsAndPagesTask(blogId,today));
      executor.submit(new TopPostsAndPagesTask(blogId,yesterday));
      executor.submit(new ViewsByCountryTask(blogId,today));
      executor.submit(new ViewsByCountryTask(blogId,yesterday));
      executor.submit(new ClicksTask(blogId,today));
      executor.submit(new ClicksTask(blogId,yesterday));
      executor.submit(new ReferrersTask(blogId,today));
      executor.submit(new ReferrersTask(blogId,yesterday));
      executor.submit(new SearchEngineTermsTask(blogId,today));
      executor.submit(new SearchEngineTermsTask(blogId,yesterday));
      AppLog.i(T.STATS,"String_Node_Str");
      broadcastUpdate(true);
      try {
        executor.shutdown();
        if (!executor.awaitTermination(EXECUTOR_TIMEOUT_SECONDS,TimeUnit.SECONDS)) {
          AppLog.w(T.STATS,"String_Node_Str");
          executor.shutdownNow();
        }
      }
 catch (      InterruptedException e) {
        AppLog.e(T.STATS,e);
        executor.shutdownNow();
        Thread.currentThread().interrupt();
      }
 finally {
        AppLog.i(T.STATS,"String_Node_Str");
        broadcastUpdate(false);
      }
    }
  }
.start();
}

Fixed version (ground truth):
private void startTasks(final String blogId){
  final ThreadPoolExecutor executor=(ThreadPoolExecutor)Executors.newFixedThreadPool(getMaxConcurrentTasks());
  new Thread(){
    @Override public void run(){
      final String today=StatUtils.getCurrentDate();
      final String yesterday=StatUtils.getYesterdaysDate();
      executor.submit(new SummaryTask(blogId));
      executor.submit(new BarChartTask(blogId,StatsBarChartUnit.WEEK));
      executor.submit(new BarChartTask(blogId,StatsBarChartUnit.MONTH));
      executor.submit(new TopPostsAndPagesTask(blogId,today));
      executor.submit(new TopPostsAndPagesTask(blogId,yesterday));
      executor.submit(new ViewsByCountryTask(blogId,today));
      executor.submit(new ViewsByCountryTask(blogId,yesterday));
      executor.submit(new ClicksTask(blogId,today));
      executor.submit(new ClicksTask(blogId,yesterday));
      executor.submit(new ReferrersTask(blogId,today));
      executor.submit(new ReferrersTask(blogId,yesterday));
      executor.submit(new SearchEngineTermsTask(blogId,today));
      executor.submit(new SearchEngineTermsTask(blogId,yesterday));
      AppLog.i(T.STATS,"String_Node_Str");
      broadcastUpdate(true);
      try {
        executor.shutdown();
        if (!executor.awaitTermination(EXECUTOR_TIMEOUT_SECONDS,TimeUnit.SECONDS)) {
          AppLog.w(T.STATS,"String_Node_Str");
          executor.shutdownNow();
        }
      }
 catch (      InterruptedException e) {
        AppLog.w(T.STATS,"String_Node_Str");
        executor.shutdownNow();
        Thread.currentThread().interrupt();
      }
 finally {
        AppLog.i(T.STATS,"String_Node_Str");
        broadcastUpdate(false);
      }
    }
  }
.start();
}