Program: 53666
Project: 53666
Buggy source:
private ApplicationMap createMap(Range range,Range scanRange,List<List<SpanBo>> filterList){
  final TimeWindow window=new TimeWindow(range,TimeWindowDownSampler.SAMPLER);
  final LinkDataDuplexMap linkDataDuplexMap=new LinkDataDuplexMap();
  final DotExtractor dotExtractor=new DotExtractor(scanRange,applicationFactory);
  final ResponseHistogramBuilder mapHistogramSummary=new ResponseHistogramBuilder(range);
  for (  List<SpanBo> transaction : filterList) {
    final Map<Long,SpanBo> transactionSpanMap=checkDuplicatedSpanId(transaction);
    for (    SpanBo span : transaction) {
      final Application parentApplication=createParentApplication(span,transactionSpanMap);
      final Application spanApplication=this.applicationFactory.createApplication(span.getApplicationId(),span.getApplicationServiceType());
      recordSpanResponseTime(spanApplication,span,mapHistogramSummary,span.getCollectorAcceptTime());
      if (!spanApplication.getServiceType().isRecordStatistics() || spanApplication.getServiceType().isRpcClient()) {
        logger.warn("String_Node_Str",spanApplication);
        continue;
      }
      final short slotTime=getHistogramSlotTime(span,spanApplication.getServiceType());
      long timestamp=window.refineTimestamp(span.getCollectorAcceptTime());
      if (parentApplication.getServiceType() == ServiceType.USER) {
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap sourceLinkData=linkDataDuplexMap.getSourceLinkDataMap();
        sourceLinkData.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap targetLinkDataMap=linkDataDuplexMap.getTargetLinkDataMap();
        targetLinkDataMap.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
      }
 else {
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap targetLinkDataMap=linkDataDuplexMap.getTargetLinkDataMap();
        targetLinkDataMap.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
      }
      addNodeFromSpanEvent(span,window,linkDataDuplexMap,transactionSpanMap);
      dotExtractor.addDot(span);
    }
  }
  List<ApplicationScatterScanResult> applicationScatterScanResult=dotExtractor.getApplicationScatterScanResult();
  ApplicationMapBuilder applicationMapBuilder=new ApplicationMapBuilder(range);
  mapHistogramSummary.build();
  ApplicationMap map=applicationMapBuilder.build(linkDataDuplexMap,agentInfoService,mapHistogramSummary);
  map.setApplicationScatterScanResult(applicationScatterScanResult);
  return map;
}

Fixed version (ground truth):
private ApplicationMap createMap(Range range,Range scanRange,List<List<SpanBo>> filterList){
  final TimeWindow window=new TimeWindow(range,TimeWindowDownSampler.SAMPLER);
  final LinkDataDuplexMap linkDataDuplexMap=new LinkDataDuplexMap();
  final DotExtractor dotExtractor=new DotExtractor(scanRange,applicationFactory);
  final ResponseHistogramBuilder mapHistogramSummary=new ResponseHistogramBuilder(range);
  for (  List<SpanBo> transaction : filterList) {
    final Map<Long,SpanBo> transactionSpanMap=checkDuplicatedSpanId(transaction);
    for (    SpanBo span : transaction) {
      final Application parentApplication=createParentApplication(span,transactionSpanMap);
      final Application spanApplication=this.applicationFactory.createApplication(span.getApplicationId(),span.getApplicationServiceType());
      recordSpanResponseTime(spanApplication,span,mapHistogramSummary,span.getCollectorAcceptTime());
      if (!spanApplication.getServiceType().isRecordStatistics() || spanApplication.getServiceType().isRpcClient()) {
        logger.warn("String_Node_Str",spanApplication);
        continue;
      }
      final short slotTime=getHistogramSlotTime(span,spanApplication.getServiceType());
      long timestamp=window.refineTimestamp(span.getCollectorAcceptTime());
      if (parentApplication.getServiceType() == ServiceType.USER) {
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap sourceLinkData=linkDataDuplexMap.getSourceLinkDataMap();
        sourceLinkData.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap targetLinkDataMap=linkDataDuplexMap.getTargetLinkDataMap();
        targetLinkDataMap.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
      }
 else {
        if (logger.isTraceEnabled()) {
          logger.trace("String_Node_Str",parentApplication,span.getAgentId(),spanApplication,span.getAgentId());
        }
        final LinkDataMap targetLinkDataMap=linkDataDuplexMap.getTargetLinkDataMap();
        targetLinkDataMap.addLinkData(parentApplication,span.getAgentId(),spanApplication,span.getAgentId(),timestamp,slotTime,1);
      }
      addNodeFromSpanEvent(span,window,linkDataDuplexMap,transactionSpanMap);
      dotExtractor.addDot(span);
    }
  }
  List<ApplicationScatterScanResult> applicationScatterScanResult=dotExtractor.getApplicationScatterScanResult();
  ApplicationMapBuilder applicationMapBuilder=new ApplicationMapBuilder(range);
  mapHistogramSummary.build();
  ApplicationMap map=applicationMapBuilder.build(linkDataDuplexMap,mapHistogramSummary);
  map.setApplicationScatterScanResult(applicationScatterScanResult);
  return map;
}