Program: 117901
Project: 117901
Buggy source:
/** 
 * yzhang Comment method "initArray".
 */
private Object getArray(){
  List<Map<String,String>> map=new ArrayList<Map<String,String>>();
  MetadataTable table=(MetadataTable)this.getMetadataList().get(0);
  for (  IMetadataColumn col : table.getListColumns()) {
    VirtualMetadataColumn ext=(VirtualMetadataColumn)col;
    Map<String,String> value=new HashMap<String,String>();
    value.put(RowGeneratorComponent.COLUMN_NAME,ext.getLabel());
    List<Variable> variables=ExpressionBuilderDialog.getTestComposite().getVariableList();
    String expression=ExpressionBuilderDialog.getExpressionComposite().getExpression();
    try {
      for (      Variable varible : variables) {
        if (valueContains(expression,varible.getName())) {
          Integer.parseInt(varible.getValue());
        }
      }
      for (      Variable var : variables) {
        String talendType=var.getTalendType();
        JavaType javaTypeFromId=JavaTypesManager.getJavaTypeFromId(talendType);
        String label=null;
        String value2=var.getValue();
        if (javaTypeFromId != null) {
          label=javaTypeFromId.getLabel();
          if ("String_Node_Str".equals(label)) {
            value2="String_Node_Str" + value2 + "String_Node_Str";
          }
        }
        expression=renameValues(expression,var.getName(),value2);
      }
    }
 catch (    NumberFormatException e1) {
      for (      Variable var : variables) {
        expression=renameValues(expression,var.getName(),"String_Node_Str" + var.getValue() + "String_Node_Str");
      }
    }
    value.put(RowGeneratorComponent.ARRAY,"String_Node_Str" + expression + "String_Node_Str");
    map.add(value);
  }
  return map;
}

Fixed version (ground truth):
/** 
 * yzhang Comment method "initArray".
 */
private Object getArray(){
  List<Map<String,String>> map=new ArrayList<Map<String,String>>();
  MetadataTable table=(MetadataTable)this.getMetadataList().get(0);
  for (  IMetadataColumn col : table.getListColumns()) {
    VirtualMetadataColumn ext=(VirtualMetadataColumn)col;
    Map<String,String> value=new HashMap<String,String>();
    value.put(RowGeneratorComponent.COLUMN_NAME,ext.getLabel());
    List<Variable> variables=ExpressionBuilderDialog.getTestComposite().getVariableList();
    String expression=ExpressionBuilderDialog.getExpressionComposite().getExpression();
    try {
      for (      Variable varible : variables) {
        String type=null;
        JavaType javaTypeFromId=JavaTypesManager.getJavaTypeFromId(varible.getTalendType());
        if (javaTypeFromId != null) {
          type=javaTypeFromId.getLabel();
        }
        String currentValue=varible.getValue();
        String newValue=renameVaribleValue(currentValue,type);
        if (valueContains(expression,varible.getName())) {
          if (currentValue != null && !currentValue.equals(newValue)) {
            expression=renameValues(expression,varible.getName(),newValue);
          }
 else {
            Integer.parseInt(varible.getValue());
          }
        }
 else {
          expression=renameValues(expression,varible.getName(),newValue);
        }
      }
    }
 catch (    NumberFormatException e1) {
      for (      Variable var : variables) {
        expression=renameValues(expression,var.getName(),"String_Node_Str" + var.getValue() + "String_Node_Str");
      }
    }
    value.put(RowGeneratorComponent.ARRAY,"String_Node_Str" + expression + "String_Node_Str");
    map.add(value);
  }
  return map;
}