Program: 64891
Project: 64891
Buggy source:
/** 
 * update DataSetHandle
 * @param response
 * @param dataSetHandle
 * @param isSourceChanged
 */
public void updateDataSetHandle(DesignSessionResponse response,DataSetDesign requestDesign,OdaDataSetHandle dataSetHandle,boolean isSourceChanged){
  initDesignSessionFields(response);
  if (isSessionOk()) {
    EcoreUtil.EqualityHelper equalityHelper=new EcoreUtil.EqualityHelper();
    if (equalityHelper.equals(response.getDataSetDesign(),requestDesign) && equalityHelper.equals(response.getDesignerState(),this.designerState))     return;
    try {
      DataSetDesign design=response.getDataSetDesign();
      if (ReportPlugin.getDefault().getPluginPreferences().getBoolean(DateSetPreferencePage.PROMPT_ENABLE) == true) {
        IAmbiguousOption ambiguousOption=modelOdaAdapter.getAmbiguousOption(design,dataSetHandle);
        if (ambiguousOption != null && !ambiguousOption.getAmbiguousParameters().isEmpty()) {
          PromptParameterDialog dialog=new PromptParameterDialog(Messages.getString("String_Node_Str"));
          dialog.setInput(ambiguousOption);
          if (dialog.open() == Dialog.OK) {
            Object result=dialog.getResult();
            if (result instanceof List) {
              List<OdaDataSetParameter> selectedParameters=(List)result;
              updateROMDesignerState(dataSetHandle);
              modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,selectedParameters,null,isSourceChanged);
              refreshCachedMetaData(dataSetHandle);
              return;
            }
          }
 else {
            updateROMDesignerState(dataSetHandle);
            modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,isSourceChanged);
            refreshCachedMetaData(dataSetHandle);
            return;
          }
        }
      }
      updateROMDesignerState(dataSetHandle);
      modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,isSourceChanged);
      refreshCachedMetaData(dataSetHandle);
    }
 catch (    SemanticException e) {
      ExceptionHandler.handle(e);
    }
  }
  return;
}

Fixed version (ground truth):
/** 
 * update DataSetHandle
 * @param response
 * @param dataSetHandle
 * @param isSourceChanged
 */
public void updateDataSetHandle(DesignSessionResponse response,DataSetDesign requestDesign,OdaDataSetHandle dataSetHandle,boolean isSourceChanged){
  initDesignSessionFields(response);
  if (isSessionOk()) {
    EcoreUtil.EqualityHelper equalityHelper=new EcoreUtil.EqualityHelper();
    if (equalityHelper.equals(response.getDataSetDesign(),requestDesign) && equalityHelper.equals(response.getDesignerState(),this.designerState))     return;
    try {
      DataSetDesign design=response.getDataSetDesign();
      if (design.getPrimaryResultSet() != null && design.getPrimaryResultSet().getResultSetColumns() != null) {
        List<ColumnDefinition> resultColumnDefinitions=design.getPrimaryResultSet().getResultSetColumns().getResultColumnDefinitions();
        if (resultColumnDefinitions != null && !resultColumnDefinitions.isEmpty()) {
          Object hint=resultColumnDefinitions.get(0).getUsageHints();
          if (hint == null) {
            design.setPrimaryResultSet(null);
            design.setResultSets(null);
          }
        }
      }
      if (ReportPlugin.getDefault().getPluginPreferences().getBoolean(DateSetPreferencePage.PROMPT_ENABLE) == true) {
        IAmbiguousOption ambiguousOption=modelOdaAdapter.getAmbiguousOption(design,dataSetHandle);
        if (ambiguousOption != null && !ambiguousOption.getAmbiguousParameters().isEmpty()) {
          PromptParameterDialog dialog=new PromptParameterDialog(Messages.getString("String_Node_Str"));
          dialog.setInput(ambiguousOption);
          if (dialog.open() == Dialog.OK) {
            Object result=dialog.getResult();
            if (result instanceof List) {
              List<OdaDataSetParameter> selectedParameters=(List)result;
              updateROMDesignerState(dataSetHandle);
              modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,selectedParameters,null,isSourceChanged);
              refreshCachedMetaData(dataSetHandle);
              return;
            }
          }
 else {
            updateROMDesignerState(dataSetHandle);
            modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,isSourceChanged);
            refreshCachedMetaData(dataSetHandle);
            return;
          }
        }
      }
      updateROMDesignerState(dataSetHandle);
      modelOdaAdapter.updateDataSetHandle(design,dataSetHandle,isSourceChanged);
      refreshCachedMetaData(dataSetHandle);
    }
 catch (    SemanticException e) {
      ExceptionHandler.handle(e);
    }
  }
  return;
}