Program: 50907
Project: 50907
Buggy source:
public PeekResponse call(){
  final RolapStar.Measure measure=request.getMeasure();
  final RolapStar star=measure.getStar();
  final RolapSchema schema=star.getSchema();
  final AggregationKey key=new AggregationKey(request);
  final List<SegmentHeader> headers=indexRegistry.getIndex(star).locate(schema.getName(),schema.getChecksum(),measure.getCubeName(),measure.getName(),star.getFactTable().getAlias(),request.getConstrainedColumnsBitKey(),request.getMappedCellValues(),AggregationKey.getCompoundPredicateStringList(star,key.getCompoundPredicateList()));
  final Map<SegmentHeader,Future<SegmentBody>> headerMap=new HashMap<SegmentHeader,Future<SegmentBody>>();
  final Map<List,SegmentBuilder.SegmentConverter> converterMap=new HashMap<List,SegmentBuilder.SegmentConverter>();
  for (  final SegmentHeader header : headers) {
    final Future<SegmentBody> bodyFuture=indexRegistry.getIndex(star).getFuture(header);
    if (bodyFuture != null) {
      if (star.getChangeListener() != null && star.getChangeListener().isAggregationChanged(key)) {
        indexRegistry.getIndex(star).remove(header);
        Util.safeGet(cacheExecutor.submit(new Runnable(){
          public void run(){
            try {
              compositeCache.remove(header);
            }
 catch (            Throwable e) {
              LOGGER.warn("String_Node_Str" + header,e);
            }
          }
        }
),"String_Node_Str");
      }
      converterMap.put(SegmentCacheIndexImpl.makeConverterKey(header),getConverter(star,header));
      headerMap.put(header,bodyFuture);
    }
  }
  return new PeekResponse(headerMap,converterMap);
}

Fixed version (ground truth):
public PeekResponse call(){
  final RolapStar.Measure measure=request.getMeasure();
  final RolapStar star=measure.getStar();
  final RolapSchema schema=star.getSchema();
  final AggregationKey key=new AggregationKey(request);
  final List<SegmentHeader> headers=indexRegistry.getIndex(star).locate(schema.getName(),schema.getChecksum(),measure.getCubeName(),measure.getName(),star.getFactTable().getAlias(),request.getConstrainedColumnsBitKey(),request.getMappedCellValues(),AggregationKey.getCompoundPredicateStringList(star,key.getCompoundPredicateList()));
  final Map<SegmentHeader,Future<SegmentBody>> headerMap=new HashMap<SegmentHeader,Future<SegmentBody>>();
  final Map<List,SegmentBuilder.SegmentConverter> converterMap=new HashMap<List,SegmentBuilder.SegmentConverter>();
  for (  final SegmentHeader header : headers) {
    final Future<SegmentBody> bodyFuture=indexRegistry.getIndex(star).getFuture(header);
    if (bodyFuture != null) {
      if (star.getChangeListener() != null && star.getChangeListener().isAggregationChanged(key)) {
        indexRegistry.getIndex(star).remove(header);
        Util.safeGet(cacheExecutor.submit(new Runnable(){
          public void run(){
            try {
              compositeCache.remove(header);
            }
 catch (            Throwable e) {
              LOGGER.warn("String_Node_Str" + header,e);
            }
          }
        }
),"String_Node_Str");
        continue;
      }
      converterMap.put(SegmentCacheIndexImpl.makeConverterKey(header),getConverter(star,header));
      headerMap.put(header,bodyFuture);
    }
  }
  return new PeekResponse(headerMap,converterMap);
}