Program: 48137
Project: 48137
Buggy source:
@Override public MapEntrySet getAll(Set<Data> keySet){
  checkIfLoaded();
  final long now=getNow();
  final MapEntrySet mapEntrySet=new MapEntrySet();
  Map<Object,Data> keyMapForLoader=Collections.emptyMap();
  if (mapContainer.getStore() != null) {
    keyMapForLoader=new HashMap<Object,Data>();
  }
  for (  Data dataKey : keySet) {
    Record record=records.get(dataKey);
    if (hasWaitingWriteBehindDeleteOperation(dataKey)) {
      continue;
    }
    if (record == null) {
      if (mapContainer.getStore() != null) {
        keyMapForLoader.put(mapService.toObject(dataKey),dataKey);
      }
    }
 else {
      accessRecord(record);
      Object value=record.getValue();
      value=mapService.interceptGet(name,value);
      if (value != null) {
        mapEntrySet.add(new AbstractMap.SimpleImmutableEntry(dataKey,mapService.toData(value)));
      }
    }
  }
  if (mapContainer.getStore() == null || keyMapForLoader.size() == 0) {
    return mapEntrySet;
  }
  final Map<Object,Object> fromEvictionStagingArea=getFromEvictionStagingArea(keySet);
  for (  Object o : fromEvictionStagingArea.keySet()) {
    keyMapForLoader.remove(o);
  }
  final Map<Object,Object> loadedKeys=mapContainer.getStore().loadAll(keyMapForLoader.keySet());
  for (  Map.Entry entry : loadedKeys.entrySet()) {
    final Object objectKey=entry.getKey();
    Object value=entry.getValue();
    Data dataKey=keyMapForLoader.get(objectKey);
    if (hasWaitingWriteBehindDeleteOperation(dataKey)) {
      continue;
    }
    if (value != null) {
      Record record=mapService.createRecord(name,dataKey,value,DEFAULT_TTL,now);
      records.put(dataKey,record);
      saveIndex(record);
      updateSizeEstimator(calculateRecordSize(record));
    }
    value=mapService.interceptGet(name,value);
    if (value != null) {
      mapEntrySet.add(new AbstractMap.SimpleImmutableEntry(dataKey,mapService.toData(value)));
    }
  }
  postReadCleanUp(now);
  return mapEntrySet;
}

Fixed version (ground truth):
@Override public MapEntrySet getAll(Set<Data> keySet){
  checkIfLoaded();
  final long now=getNow();
  final MapEntrySet mapEntrySet=new MapEntrySet();
  Map<Object,Data> keyMapForLoader=Collections.emptyMap();
  if (mapContainer.getStore() != null) {
    keyMapForLoader=new HashMap<Object,Data>();
  }
  for (  Data dataKey : keySet) {
    Record record=records.get(dataKey);
    if (record == null) {
      if (mapContainer.getStore() != null) {
        keyMapForLoader.put(mapService.toObject(dataKey),dataKey);
      }
    }
 else {
      accessRecord(record);
      Object value=record.getValue();
      value=mapService.interceptGet(name,value);
      if (value != null) {
        mapEntrySet.add(new AbstractMap.SimpleImmutableEntry(dataKey,mapService.toData(value)));
      }
    }
  }
  if (mapContainer.getStore() == null || keyMapForLoader.size() == 0) {
    return mapEntrySet;
  }
  final Map<Object,Object> fromEvictionStagingArea=getFromEvictionStagingArea(keySet);
  for (  Object o : fromEvictionStagingArea.keySet()) {
    keyMapForLoader.remove(o);
  }
  final Map<Object,Object> loadedKeys=mapContainer.getStore().loadAll(keyMapForLoader.keySet());
  for (  Map.Entry entry : loadedKeys.entrySet()) {
    final Object objectKey=entry.getKey();
    Object value=entry.getValue();
    Data dataKey=keyMapForLoader.get(objectKey);
    if (hasWaitingWriteBehindDeleteOperation(dataKey)) {
      continue;
    }
    if (value != null) {
      Record record=mapService.createRecord(name,dataKey,value,DEFAULT_TTL,now);
      records.put(dataKey,record);
      saveIndex(record);
      updateSizeEstimator(calculateRecordSize(record));
    }
    value=mapService.interceptGet(name,value);
    if (value != null) {
      mapEntrySet.add(new AbstractMap.SimpleImmutableEntry(dataKey,mapService.toData(value)));
    }
  }
  postReadCleanUp(now);
  return mapEntrySet;
}