Program: 136588
Project: 136588
Buggy source:
@Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
  final boolean isSupportDynamicChart=isSupportDynamicChart();
  monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str",item.getAnalysis().getName()),5);
  Display.getDefault().syncExec(new Runnable(){
    public void run(){
      if (listener != null) {
        listener.fireRuningItemChanged(false);
      }
      if (isSupportDynamicChart) {
        EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_DYNAMIC_REGISTER_DYNAMIC_CHART,null);
      }
    }
  }
);
  ReturnCode executed=null;
  try {
    executed=AnalysisExecutorSelector.executeAnalysis(item,monitor);
    if (monitor.isCanceled()) {
      TdqAnalysisConnectionPool.closeConnectionPool(item.getAnalysis());
      executed=new ReturnCode(DefaultMessagesImpl.getString("String_Node_Str"),false);
      monitor.done();
      if (isNeedUnlock) {
        unlockAnalysis();
      }
      return Status.CANCEL_STATUS;
    }
    if (isNeedUnlock) {
      unlockAnalysis();
    }
  }
  finally {
    Display.getDefault().syncExec(new Runnable(){
      public void run(){
        if (isSupportDynamicChart) {
          EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_DYNAMIC_UNREGISTER_DYNAMIC_CHART,null);
        }
        if (listener != null) {
          listener.fireRuningItemChanged(true);
        }
 else {
          EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_ANALYSIS_RUN_FROM_MENU,null);
        }
      }
    }
);
  }
  displayResultStatus(executed);
  addAnalysisToRef(item.getAnalysis());
  monitor.done();
  return Status.OK_STATUS;
}

Fixed version (ground truth):
@Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
  final boolean isSupportDynamicChart=isSupportDynamicChart();
  monitor.beginTask(DefaultMessagesImpl.getString("String_Node_Str",item.getAnalysis().getName()),5);
  Display.getDefault().syncExec(new Runnable(){
    public void run(){
      if (listener != null) {
        listener.fireRuningItemChanged(false,isSupportDynamicChart);
      }
      if (isSupportDynamicChart) {
        EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_DYNAMIC_REGISTER_DYNAMIC_CHART,null);
      }
    }
  }
);
  ReturnCode executed=null;
  try {
    executed=AnalysisExecutorSelector.executeAnalysis(item,monitor);
    if (monitor.isCanceled()) {
      TdqAnalysisConnectionPool.closeConnectionPool(item.getAnalysis());
      executed=new ReturnCode(DefaultMessagesImpl.getString("String_Node_Str"),false);
      monitor.done();
      if (isNeedUnlock) {
        unlockAnalysis();
      }
      return Status.CANCEL_STATUS;
    }
    if (isNeedUnlock) {
      unlockAnalysis();
    }
  }
  finally {
    Display.getDefault().syncExec(new Runnable(){
      public void run(){
        if (isSupportDynamicChart) {
          EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_DYNAMIC_UNREGISTER_DYNAMIC_CHART,null);
        }
        if (listener != null) {
          listener.fireRuningItemChanged(true);
        }
 else {
          EventManager.getInstance().publish(item.getAnalysis(),EventEnum.DQ_ANALYSIS_RUN_FROM_MENU,null);
        }
      }
    }
);
  }
  displayResultStatus(executed);
  addAnalysisToRef(item.getAnalysis());
  monitor.done();
  return Status.OK_STATUS;
}