Program: 80295
Project: 80295
Buggy source:
@Override public WORKER_RESULT compute(WorkerContext<MASTER_RESULT,WORKER_RESULT> context) throws IOException {
  if (context.isFirstIteration()) {
    if (this.isLoaded.compareAndSet(false,true)) {
      init(context);
      long start=System.nanoTime();
      preLoad(context);
      long count=0;
      for (      GuaguaFileSplit fileSplit : context.getFileSplits()) {
        LOG.info("String_Node_Str",fileSplit);
        try {
          initRecordReader(fileSplit);
          while (getRecordReader().nextKeyValue()) {
            KEY currentKey=getRecordReader().getCurrentKey();
            VALUE currentValue=getRecordReader().getCurrentValue();
            doCompute(currentKey,currentValue,context);
            dataMap.put(currentKey,currentValue);
            ++count;
          }
        }
  finally {
          if (getRecordReader() != null) {
            getRecordReader().close();
          }
        }
      }
      postLoad(context);
      LOG.info("String_Node_Str",count);
      LOG.info("String_Node_Str",TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start));
    }
  }
 else {
    long start=System.nanoTime();
    try {
      for (      Map.Entry<KEY,VALUE> entry : dataMap.entrySet()) {
        doCompute(entry.getKey(),entry.getValue(),context);
      }
    }
  finally {
      LOG.info("String_Node_Str",context.getAppId(),context.getContainerId(),context.getCurrentIteration(),TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start));
    }
  }
  return context.getWorkerResult();
}

Fixed version (ground truth):
@Override public WORKER_RESULT compute(WorkerContext<MASTER_RESULT,WORKER_RESULT> context) throws IOException {
  if (context.isFirstIteration()) {
    if (this.isLoaded.compareAndSet(false,true)) {
      init(context);
      long start=System.nanoTime();
      preLoad(context);
      long count=0;
      for (      GuaguaFileSplit fileSplit : context.getFileSplits()) {
        LOG.info("String_Node_Str",fileSplit);
        try {
          initRecordReader(fileSplit);
          while (getRecordReader().nextKeyValue()) {
            KEY currentKey=getRecordReader().getCurrentKey();
            VALUE currentValue=getRecordReader().getCurrentValue();
            doCompute(currentKey,currentValue,context);
            dataMap.put(currentKey,currentValue);
            count+=1L;
          }
        }
  finally {
          if (getRecordReader() != null) {
            getRecordReader().close();
          }
        }
      }
      if (count == 0L) {
        throw new IllegalStateException("String_Node_Str");
      }
      postLoad(context);
      LOG.info("String_Node_Str",count);
      LOG.info("String_Node_Str",TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start));
    }
  }
 else {
    long start=System.nanoTime();
    try {
      for (      Map.Entry<KEY,VALUE> entry : dataMap.entrySet()) {
        doCompute(entry.getKey(),entry.getValue(),context);
      }
    }
  finally {
      LOG.info("String_Node_Str",context.getAppId(),context.getContainerId(),context.getCurrentIteration(),TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start));
    }
  }
  return context.getWorkerResult();
}