Program: 125835
Project: 125835
Buggy source:
private static Map<String,String> copyLine(Map<String,Object> currentLine,IElementParameter param){
  Map<String,String> newLine=new HashMap<String,String>();
  String[] items=param.getListItemsDisplayCodeName();
  for (int i=0; i < items.length; i++) {
    Object o=currentLine.get(items[i]);
    if (o instanceof Integer) {
      IElementParameter tmpParam=(IElementParameter)param.getListItemsValue()[i];
      if ((((Integer)o) == -1) || (tmpParam.getListItemsValue().length == 0)) {
        newLine.put(items[i],"String_Node_Str");
      }
 else {
        newLine.put(items[i],(String)tmpParam.getListItemsValue()[(Integer)o]);
      }
    }
 else {
      if (o instanceof String) {
        if (param.getName().equals("String_Node_Str")) {
          SQLPatternItem item=SQLPatternUtils.getItemFromCompoundId(param.getElement(),((String)o));
          if (item != null) {
            newLine.put(items[i],new String(item.getContent().getInnerContent()));
          }
 else {
            newLine.put(items[i],"String_Node_Str");
          }
        }
 else         if (param.getElement() != null && param.getElement() instanceof INode && ((INode)param.getElement()).getComponent().getName().equals("String_Node_Str")) {
          String replacedValue=(String)o;
          if (items[i].equals("String_Node_Str")) {
            String inputRow="String_Node_Str";
            List connList=((INode)param.getElement()).getIncomingConnections();
            if (connList.size() > 0) {
              inputRow=((IConnection)connList.get(0)).getName();
              replacedValue=replacedValue.replace("String_Node_Str",inputRow + "String_Node_Str");
            }
          }
          newLine.put(items[i],replacedValue);
        }
 else {
          newLine.put(items[i],(String)o);
        }
      }
 else {
        if (o instanceof Boolean) {
          newLine.put(items[i],((Boolean)o).toString());
        }
 else {
          newLine.put(items[i],"String_Node_Str");
        }
      }
    }
  }
  return newLine;
}

Fixed version (ground truth):
private static Map<String,String> copyLine(Map<String,Object> currentLine,IElementParameter param){
  Map<String,String> newLine=new HashMap<String,String>();
  String[] items=param.getListItemsDisplayCodeName();
  for (int i=0; i < items.length; i++) {
    Object o=currentLine.get(items[i]);
    if (o instanceof Integer) {
      IElementParameter tmpParam=(IElementParameter)param.getListItemsValue()[i];
      if ((((Integer)o) == -1) || (tmpParam.getListItemsValue().length == 0)) {
        newLine.put(items[i],"String_Node_Str");
      }
 else {
        newLine.put(items[i],(String)tmpParam.getListItemsValue()[(Integer)o]);
      }
    }
 else {
      if (o instanceof String) {
        if (param.getName().equals("String_Node_Str")) {
          SQLPatternItem item=SQLPatternUtils.getItemFromCompoundId(param.getElement(),((String)o));
          if (item != null) {
            newLine.put(items[i],new String(item.getContent().getInnerContent()));
          }
 else {
            newLine.put(items[i],"String_Node_Str");
          }
        }
 else         if (param.getElement() != null && param.getElement() instanceof INode && ((INode)param.getElement()).getComponent().getName().equals("String_Node_Str")) {
          String replacedValue=(String)o;
          if (items[i].equals("String_Node_Str")) {
            String inputRow="String_Node_Str";
            List connList=((INode)param.getElement()).getIncomingConnections();
            if (connList.size() > 0) {
              inputRow=((IConnection)connList.get(0)).getName();
              replacedValue=replacedValue.replace("String_Node_Str",inputRow + "String_Node_Str");
            }
          }
          newLine.put(items[i],replacedValue);
        }
 else {
          newLine.put(items[i],(String)o);
          if (param.getListItemsValue() != null && param.getListItemsValue()[i] instanceof IElementParameter) {
            IElementParameter tmpParam=(IElementParameter)param.getListItemsValue()[i];
            if (tmpParam.getListItemsValue() != null && tmpParam.getListItemsValue().length > 0) {
              newLine.put(items[i],(String)tmpParam.getListItemsValue()[0]);
            }
          }
        }
      }
 else {
        if (o instanceof Boolean) {
          newLine.put(items[i],((Boolean)o).toString());
        }
 else {
          newLine.put(items[i],"String_Node_Str");
        }
      }
    }
  }
  return newLine;
}