Program: 92911
Project: 92911
Buggy source:
/** 
 * send data request directly e.g. doesn't use a queue
 * @param requestTrange
 * @param listener
 * @param experimentTRange
 * @param processor
 * @return
 */
private boolean processDataRequest(TmfTimeRange requestTrange,TmfTimeRange experimentTRange,boolean clearingData){
  if (requestTrange == null || experimentTRange == null) {
    TraceDebug.debug("String_Node_Str");
    return false;
  }
  if (fCurrentRequest != null && !fCurrentRequest.isCompleted()) {
    System.out.println("String_Node_Str");
  }
  fCurrentRequest=new LttngSyntEventRequest(requestTrange,DEFAULT_OFFSET,TmfDataRequest.ALL_DATA,DEFAULT_CHUNK,this,experimentTRange,getEventProcessor()){
    Long fCount=getSynEventCount();
    ITransEventProcessor processor=getProcessor();
    TmfTimestamp frunningTimeStamp;
    @Override public void handleData(){
      LttngSyntheticEvent[] result=getData();
      TmfEvent evt=(result.length > 0) ? result[0] : null;
      if (evt != null) {
        LttngSyntheticEvent synEvent=(LttngSyntheticEvent)evt;
        SequenceInd indicator=synEvent.getSynType();
        if (indicator == SequenceInd.BEFORE || indicator == SequenceInd.AFTER) {
          processor.process(evt,synEvent.getTraceModel());
        }
 else         if (indicator == SequenceInd.STARTREQ) {
          handleRequestStarted();
        }
 else         if (indicator == SequenceInd.ENDREQ) {
          processor.process(evt,synEvent.getTraceModel());
        }
        if (indicator == SequenceInd.BEFORE) {
          fCount++;
          if (fCount != 0 && fCount % INPUT_CHANGED_REFRESH == 0) {
            modelInputChanged(this,false);
            if (TraceDebug.isDEBUG()) {
              frunningTimeStamp=evt.getTimestamp();
              TraceDebug.debug("String_Node_Str" + fCount + "String_Node_Str"+ synEvent.getSynType());
            }
          }
        }
      }
    }
    public void handleRequestStarted(){
      notifyStarting();
    }
    @Override public void done(){
      super.done();
    }
    @Override public void handleCompleted(){
      super.handleCompleted();
      if (isFailed() || isCancelled()) {
        modelIncomplete(this);
      }
      if (TraceDebug.isDEBUG()) {
        if (frunningTimeStamp != null) {
          TraceDebug.debug("String_Node_Str" + frunningTimeStamp.getValue());
        }
      }
    }
  }
;
  LttngSyntheticEventProvider provider=LttngCoreProviderFactory.getEventProvider();
  fCurrentRequest.startRequestInd(provider);
  fCurrentRequest.setclearDataInd(clearingData);
  return true;
}

Fixed version (ground truth):
/** 
 * send data request directly e.g. doesn't use a queue
 * @param requestTrange
 * @param listener
 * @param experimentTRange
 * @param execType 
 * @param processor
 * @return
 */
private boolean processDataRequest(TmfTimeRange requestTrange,TmfTimeRange experimentTRange,boolean clearingData,ExecutionType execType){
  if (requestTrange == null || experimentTRange == null) {
    TraceDebug.debug("String_Node_Str");
    return false;
  }
  if (fCurrentRequest != null && !fCurrentRequest.isCompleted()) {
  }
  fCurrentRequest=new LttngSyntEventRequest(requestTrange,DEFAULT_OFFSET,TmfDataRequest.ALL_DATA,DEFAULT_CHUNK,this,experimentTRange,getEventProcessor(),execType){
    Long fCount=getSynEventCount();
    ITransEventProcessor processor=getProcessor();
    TmfTimestamp frunningTimeStamp;
    @Override public void handleData(){
      LttngSyntheticEvent[] result=getData();
      TmfEvent evt=(result.length > 0) ? result[0] : null;
      if (evt != null) {
        LttngSyntheticEvent synEvent=(LttngSyntheticEvent)evt;
        SequenceInd indicator=synEvent.getSynType();
        if (indicator == SequenceInd.BEFORE || indicator == SequenceInd.AFTER) {
          processor.process(evt,synEvent.getTraceModel());
        }
 else         if (indicator == SequenceInd.STARTREQ) {
          handleRequestStarted();
        }
 else         if (indicator == SequenceInd.ENDREQ) {
          processor.process(evt,synEvent.getTraceModel());
        }
        if (indicator == SequenceInd.BEFORE) {
          fCount++;
          if (fCount != 0 && fCount % INPUT_CHANGED_REFRESH == 0) {
            modelInputChanged(this,false);
            if (TraceDebug.isDEBUG()) {
              frunningTimeStamp=evt.getTimestamp();
              TraceDebug.debug("String_Node_Str" + fCount + "String_Node_Str"+ synEvent.getSynType());
            }
          }
        }
      }
    }
    public void handleRequestStarted(){
      notifyStarting();
    }
    @Override public void done(){
      super.done();
    }
    @Override public void handleCompleted(){
      super.handleCompleted();
      if (isFailed() || isCancelled()) {
        modelIncomplete(this);
      }
      if (TraceDebug.isDEBUG()) {
        if (frunningTimeStamp != null) {
          TraceDebug.debug("String_Node_Str" + frunningTimeStamp.getValue());
        }
      }
    }
  }
;
  LttngSyntheticEventProvider provider=LttngCoreProviderFactory.getEventProvider();
  fCurrentRequest.startRequestInd(provider);
  fCurrentRequest.setclearDataInd(clearingData);
  return true;
}