Program: 124167
Project: 124167
Buggy source:
@Override public void refresh(IElementParameter param,boolean check){
  String paramName=param.getName();
  boolean isPatternList=StringUtils.equals(paramName,"String_Node_Str");
  boolean isRule=StringUtils.equals(paramName,"String_Node_Str");
  CCombo combo=(CCombo)hashCurControls.get(paramName);
  if (combo == null || combo.isDisposed()) {
    return;
  }
  if (isPatternList) {
    ITDQPatternService service=null;
    try {
      service=(ITDQPatternService)GlobalServiceRegister.getDefault().getService(ITDQPatternService.class);
    }
 catch (    RuntimeException e) {
    }
    if (service != null && elem instanceof Node) {
      Node node=(Node)elem;
      IElementParameter typeParam=node.getElementParameter("String_Node_Str");
      service.overridePatternList(typeParam,param);
    }
  }
  if (isRule) {
    ITDQRuleService rulerService=null;
    try {
      rulerService=(ITDQRuleService)GlobalServiceRegister.getDefault().getService(ITDQRuleService.class);
    }
 catch (    RuntimeException e) {
    }
    if (rulerService != null && elem instanceof Node) {
      Node node=(Node)elem;
      IElementParameter typeParam=node.getElementParameter("String_Node_Str");
      IElementParameter dbParam=node.getElementParameter(EParameterName.DBNAME.getName());
      IElementParameter schemaParam=node.getElementParameter(EParameterName.SCHEMA_DB.getName());
      IElementParameter tableParam=node.getElementParameter(EParameterName.TABLE.getName());
      List<IMetadataTable> metadataList=node.getMetadataList();
      IMetadataTable metadataTable=null;
      if (metadataList != null && !metadataList.isEmpty()) {
        metadataTable=metadataList.get(0);
      }
      rulerService.overrideRuleList(typeParam,dbParam,schemaParam,tableParam,metadataTable,param);
    }
  }
  Object value=param.getValue();
  if (value instanceof String) {
    String strValue="String_Node_Str";
    int nbInList=0, nbMax=param.getListItemsValue().length;
    String name=(String)value;
    while (strValue.equals(new String("String_Node_Str")) && nbInList < nbMax) {
      if (name.equals(param.getListItemsValue()[nbInList])) {
        strValue=param.getListItemsDisplayName()[nbInList];
      }
      nbInList++;
    }
    String[] paramItems=getListToDisplay(param);
    String[] comboItems=combo.getItems();
    if (!Arrays.equals(paramItems,comboItems)) {
      combo.setItems(paramItems);
    }
    if (isPatternList || isRule) {
      combo.setText("String_Node_Str".equals(strValue) ? (String)value : strValue);
    }
 else {
      combo.setText(strValue);
    }
    combo.setVisible(true);
  }
  if (param.isContextMode()) {
    combo.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_YELLOW));
    combo.setEnabled(false);
  }
}

Fixed version (ground truth):
@Override public void refresh(IElementParameter param,boolean check){
  String paramName=param.getName();
  boolean isPatternList=StringUtils.equals(paramName,"String_Node_Str");
  boolean isRule=StringUtils.equals(paramName,"String_Node_Str");
  CCombo combo=(CCombo)hashCurControls.get(paramName);
  if (combo == null || combo.isDisposed()) {
    return;
  }
  if (isPatternList) {
    ITDQPatternService service=null;
    try {
      service=(ITDQPatternService)GlobalServiceRegister.getDefault().getService(ITDQPatternService.class);
    }
 catch (    RuntimeException e) {
    }
    if (service != null && elem instanceof Node) {
      Node node=(Node)elem;
      IElementParameter typeParam=node.getElementParameter("String_Node_Str");
      service.overridePatternList(typeParam,param);
    }
  }
  if (isRule) {
    ITDQRuleService rulerService=null;
    try {
      rulerService=(ITDQRuleService)GlobalServiceRegister.getDefault().getService(ITDQRuleService.class);
    }
 catch (    RuntimeException e) {
    }
    if (rulerService != null && elem instanceof Node) {
      Node node=(Node)elem;
      IElementParameter typeParam=node.getElementParameter("String_Node_Str");
      IElementParameter dbParam=node.getElementParameter(EParameterName.DBNAME.getName());
      IElementParameter schemaParam=node.getElementParameter(EParameterName.SCHEMA_DB.getName());
      IElementParameter tableParam=node.getElementParameterFromField(EParameterFieldType.DBTABLE);
      List<IMetadataTable> metadataList=node.getMetadataList();
      IMetadataTable metadataTable=null;
      if (metadataList != null && !metadataList.isEmpty()) {
        metadataTable=metadataList.get(0);
      }
      rulerService.overrideRuleList(typeParam,dbParam,schemaParam,tableParam,metadataTable,param);
    }
  }
  Object value=param.getValue();
  if (value instanceof String) {
    String strValue="String_Node_Str";
    int nbInList=0, nbMax=param.getListItemsValue().length;
    String name=(String)value;
    while (strValue.equals(new String("String_Node_Str")) && nbInList < nbMax) {
      if (name.equals(param.getListItemsValue()[nbInList])) {
        strValue=param.getListItemsDisplayName()[nbInList];
      }
      nbInList++;
    }
    String[] paramItems=getListToDisplay(param);
    String[] comboItems=combo.getItems();
    if (!Arrays.equals(paramItems,comboItems)) {
      combo.setItems(paramItems);
    }
    if (isPatternList || isRule) {
      combo.setText("String_Node_Str".equals(strValue) ? (String)value : strValue);
    }
 else {
      combo.setText(strValue);
    }
    combo.setVisible(true);
  }
  if (param.isContextMode()) {
    combo.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_YELLOW));
    combo.setEnabled(false);
  }
}