Program: 120039
Project: 120039
Buggy source:
@Override public Object getOriginalTypedValue(CellEditor cellEditor,Object cellEditorTypedValue){
  Object returnedValue=null;
  if (cellEditorTypedValue != null && cellEditorTypedValue instanceof Integer) {
    int index=(Integer)cellEditorTypedValue;
    String[] namesSet=((CCombo)cellEditor.getControl()).getItems();
    if (namesSet.length > 0 && index > -1 && index < namesSet.length) {
      returnedValue=namesSet[index];
    }
 else {
      returnedValue=null;
    }
  }
 else {
    returnedValue=null;
  }
  if (element instanceof INode) {
    INode node=(INode)element;
    if (node.getComponent().getName() != null && node.getComponent().getName().equals("String_Node_Str")) {
      IElementParameter rootParameter=element.getElementParameter("String_Node_Str");
      if (rootParameter != null) {
        List<Map<String,String>> rootValue=(List<Map<String,String>>)rootParameter.getValue();
        if (rootValue != null) {
          for (int i=0; i < rootValue.size(); i++) {
            Map<String,String> map=(Map<String,String>)rootValue.get(i);
            String columnName=map.get("String_Node_Str");
            String split[]=columnName.split("String_Node_Str");
            if (split.length == 2 && !returnedValue.equals("String_Node_Str")) {
              String newName=returnedValue + "String_Node_Str" + split[1];
              map.put("String_Node_Str",newName);
            }
 else             if (split.length == 1 && !returnedValue.equals("String_Node_Str")) {
              String newName=(String)returnedValue;
              map.put("String_Node_Str",newName);
            }
          }
        }
      }
    }
  }
  return returnedValue;
}

Fixed version (ground truth):
@Override public Object getOriginalTypedValue(CellEditor cellEditor,Object cellEditorTypedValue){
  Object returnedValue=null;
  if (cellEditorTypedValue != null && cellEditorTypedValue instanceof Integer) {
    int index=(Integer)cellEditorTypedValue;
    String[] namesSet=((CCombo)cellEditor.getControl()).getItems();
    if (namesSet.length > 0 && index > -1 && index < namesSet.length) {
      returnedValue=namesSet[index];
    }
 else {
      returnedValue=null;
    }
  }
 else {
    returnedValue=null;
  }
  if (element instanceof INode) {
    INode node=(INode)element;
    if (node.getComponent().getName() != null && node.getComponent().getName().equals("String_Node_Str")) {
      if (!EmfComponent.REPOSITORY.equals(node.getPropertyValue(EParameterName.PROPERTY_TYPE.getName()))) {
        IElementParameter rootParameter=element.getElementParameter("String_Node_Str");
        if (rootParameter != null) {
          List<Map<String,String>> rootValue=(List<Map<String,String>>)rootParameter.getValue();
          if (rootValue != null) {
            for (int i=0; i < rootValue.size(); i++) {
              Map<String,String> map=rootValue.get(i);
              String columnName=map.get("String_Node_Str");
              String split[]=columnName.split("String_Node_Str");
              if (split.length == 2 && !returnedValue.equals("String_Node_Str")) {
                String newName=returnedValue + "String_Node_Str" + split[1];
                map.put("String_Node_Str",newName);
              }
 else               if (split.length == 1 && !returnedValue.equals("String_Node_Str")) {
                String newName=(String)returnedValue;
                map.put("String_Node_Str",newName);
              }
            }
          }
        }
      }
    }
  }
  return returnedValue;
}