Program: 118333
Project: 118333
Buggy source:
@Override public void redo(){
  IElementParameter currentParam=elem.getElementParameter(propName);
  if (repositoryValueWasUsed) {
    if (currentParam.getFieldType() == EParameterFieldType.MEMO_SQL) {
      elem.setPropertyValue(EParameterName.QUERYSTORE_TYPE.getName(),EmfComponent.BUILTIN);
    }
 else {
      elem.setPropertyValue(propertyTypeName,EmfComponent.BUILTIN);
    }
    for (    IElementParameter param : elem.getElementParameters()) {
      boolean paramFlag=JobSettingsConstants.isExtraParameter(param.getName());
      boolean extraFlag=JobSettingsConstants.isExtraParameter(propertyTypeName);
      if (paramFlag == extraFlag) {
        param.setRepositoryValueUsed(false);
      }
    }
  }
  elem.setPropertyValue(propName,newValue);
  if (propName.contains(EParameterName.PROCESS_TYPE_PROCESS.getName())) {
    ProcessItem processItem=ItemCacheManager.getProcessItem((String)newValue);
    if (processItem != null) {
      currentParam.getParentParameter().setValue(processItem.getProperty().getLabel());
    }
  }
  if (currentParam.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) {
    for (int i=0; i < elem.getElementParameters().size(); i++) {
      IElementParameter param=elem.getElementParameters().get(i);
      if (param.getDefaultValues().size() > 0) {
        param.setValueToDefault(elem.getElementParameters());
      }
    }
  }
  if (toUpdate) {
    elem.setPropertyValue(updataComponentParamName,new Boolean(true));
  }
  if (changeMetadataCommands != null) {
    for (    ChangeMetadataCommand changeMetadataCommand : changeMetadataCommands) {
      changeMetadataCommand.redo();
    }
  }
  CodeView.refreshCodeView(elem);
  ComponentSettings.switchToCurComponentSettingsView();
  JobSettings.switchToCurJobSettingsView();
  refreshTraceConnections();
  refreshResumingConnections();
  if (elem instanceof Node) {
    ((Node)elem).checkAndRefreshNode();
  }
  refreshMR(propName);
}

Fixed version (ground truth):
@Override public void redo(){
  IElementParameter currentParam=elem.getElementParameter(propName);
  if (repositoryValueWasUsed) {
    if (currentParam.getFieldType() == EParameterFieldType.MEMO_SQL) {
      elem.setPropertyValue(EParameterName.QUERYSTORE_TYPE.getName(),EmfComponent.BUILTIN);
    }
 else {
      elem.setPropertyValue(propertyTypeName,EmfComponent.BUILTIN);
    }
    for (    IElementParameter param : elem.getElementParameters()) {
      boolean paramFlag=JobSettingsConstants.isExtraParameter(param.getName());
      boolean extraFlag=JobSettingsConstants.isExtraParameter(propertyTypeName);
      if (paramFlag == extraFlag) {
        param.setRepositoryValueUsed(false);
      }
    }
  }
  elem.setPropertyValue(propName,newValue);
  if (propName.contains(EParameterName.PROCESS_TYPE_PROCESS.getName())) {
    ProcessItem processItem=ItemCacheManager.getProcessItem((String)newValue);
    if (processItem != null) {
      currentParam.getParentParameter().setValue(processItem.getProperty().getLabel());
    }
  }
  if (currentParam.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) {
    for (int i=0; i < elem.getElementParameters().size(); i++) {
      IElementParameter param=elem.getElementParameters().get(i);
      if (param.getDefaultValues().size() > 0) {
        param.setValueToDefault(elem.getElementParameters());
      }
    }
  }
  if (toUpdate) {
    elem.setPropertyValue(updataComponentParamName,new Boolean(true));
  }
  if (changeMetadataCommands != null) {
    for (    ChangeMetadataCommand changeMetadataCommand : changeMetadataCommands) {
      changeMetadataCommand.redo();
    }
  }
  if (updateELTMapComponentCommand != null) {
    updateELTMapComponentCommand.redo();
  }
  CodeView.refreshCodeView(elem);
  ComponentSettings.switchToCurComponentSettingsView();
  JobSettings.switchToCurJobSettingsView();
  refreshTraceConnections();
  refreshResumingConnections();
  if (elem instanceof Node) {
    ((Node)elem).checkAndRefreshNode();
  }
  refreshMR(propName);
}