Program: 137457
Project: 137457
Buggy source:
protected ReturnCode checkBeforeSave(){
  ReturnCode rc=super.checkBeforeSave();
  if (tempParameters != null) {
    Map<String,Integer> paraMap=new HashMap<String,Integer>();
    for (    IndicatorDefinitionParameter para : tempParameters) {
      String key=para.getKey();
      Integer keyCount=paraMap.get(key);
      if (keyCount == null) {
        paraMap.put(key,Integer.valueOf(1));
      }
 else {
        paraMap.put(key,Integer.valueOf(keyCount.intValue() + 1));
      }
    }
    if (paraMap.size() != tempParameters.size()) {
      StringBuffer duplicateKeywords=new StringBuffer();
      for (      String key : paraMap.keySet()) {
        Integer value=paraMap.get(key);
        if (value.intValue() > 1) {
          duplicateKeywords.append("String_Node_Str" + key);
        }
      }
      rc.setOk(false);
      rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str",duplicateKeywords.toString()));
      return rc;
    }
    for (    IndicatorDefinitionParameter para : tempParameters) {
      String key=para.getKey();
      String value=para.getValue();
      if (!StringUtils.isBlank(key) && (key.indexOf(UDIHelper.PARA_SEPARATE_1) > -1 || key.indexOf(UDIHelper.PARA_SEPARATE_2) > -1)) {
        rc.setOk(false);
        rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str","String_Node_Str" + UDIHelper.PARA_SEPARATE_1 + "String_Node_Str"+ UDIHelper.PARA_SEPARATE_2));
        return rc;
      }
      if (!StringUtils.isBlank(value) && (value.indexOf(UDIHelper.PARA_SEPARATE_1) > -1 || value.indexOf(UDIHelper.PARA_SEPARATE_2) > -1)) {
        rc.setOk(false);
        rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str","String_Node_Str" + UDIHelper.PARA_SEPARATE_1 + "String_Node_Str"+ UDIHelper.PARA_SEPARATE_2));
        return rc;
      }
    }
  }
  if (!checkJavaUDIBeforeSave()) {
    ((IndicatorEditor)this.getEditor()).setSaveActionButtonState(false);
    rc.setOk(false);
    rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str"));
    return rc;
  }
  return rc;
}

Fixed version (ground truth):
@Override protected ReturnCode checkBeforeSave(){
  ReturnCode rc=super.checkBeforeSave();
  if (tempParameters != null) {
    Map<String,Integer> paraMap=new HashMap<String,Integer>();
    for (    IndicatorDefinitionParameter para : tempParameters) {
      String key=para.getKey();
      Integer keyCount=paraMap.get(key);
      if (keyCount == null) {
        paraMap.put(key,Integer.valueOf(1));
      }
 else {
        paraMap.put(key,Integer.valueOf(keyCount.intValue() + 1));
      }
    }
    if (paraMap.size() != tempParameters.size()) {
      StringBuffer duplicateKeywords=new StringBuffer();
      for (      String key : paraMap.keySet()) {
        Integer value=paraMap.get(key);
        if (value.intValue() > 1) {
          duplicateKeywords.append("String_Node_Str" + key);
        }
      }
      rc.setOk(false);
      rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str",duplicateKeywords.toString()));
      return rc;
    }
    for (    IndicatorDefinitionParameter para : tempParameters) {
      String key=para.getKey();
      String value=para.getValue();
      if (!StringUtils.isBlank(key) && (key.indexOf(UDIHelper.PARA_SEPARATE_1) > -1 || key.indexOf(UDIHelper.PARA_SEPARATE_2) > -1)) {
        rc.setOk(false);
        rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str","String_Node_Str" + UDIHelper.PARA_SEPARATE_1 + "String_Node_Str"+ UDIHelper.PARA_SEPARATE_2));
        return rc;
      }
      if (!StringUtils.isBlank(value) && (value.indexOf(UDIHelper.PARA_SEPARATE_1) > -1 || value.indexOf(UDIHelper.PARA_SEPARATE_2) > -1)) {
        rc.setOk(false);
        rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str","String_Node_Str" + UDIHelper.PARA_SEPARATE_1 + "String_Node_Str"+ UDIHelper.PARA_SEPARATE_2));
        return rc;
      }
    }
  }
  if (!checkJavaUDIBeforeSave()) {
    ((IndicatorEditor)this.getEditor()).setSaveActionButtonState(false);
    rc.setOk(false);
    rc.setMessage(DefaultMessagesImpl.getString("String_Node_Str"));
    return rc;
  }
  return rc;
}