Program: 125118
Project: 125118
Buggy source:
public List<TdColumn> returnMetadataColumnsFromTable(String tableName,IMetadataConnection metadataConnection){
  List<TdColumn> toReturn=new ArrayList<TdColumn>();
  try {
    HBaseAdmin hAdmin=getAdmin(metadataConnection);
    Configuration config=hAdmin.getConfiguration();
    org.apache.hadoop.hbase.client.Scan scan=new org.apache.hadoop.hbase.client.Scan();
    org.apache.hadoop.hbase.client.HTable table=new org.apache.hadoop.hbase.client.HTable(config,tableName);
    scan.addFamily(metadataConnection.getSchema().getBytes());
    ResultScanner resultSetscanner=table.getScanner(scan);
    while (resultSetscanner.iterator().hasNext()) {
      Result result=resultSetscanner.iterator().next();
      if (result != null) {
        List<KeyValue> list=result.list();
        if (list != null) {
          List<String> columnExsit=new ArrayList<String>();
          for (          KeyValue kv : list) {
            String columnName=Bytes.toStringBinary(kv.getQualifier());
            String familyName=Bytes.toStringBinary(kv.getFamily());
            if (columnName != null) {
              String exsistColumn=columnName + "String_Node_Str" + familyName;
              if (!columnExsit.contains(columnExsit)) {
                TdColumn column=RelationalFactory.eINSTANCE.createTdColumn();
                column.setLabel(columnName);
                column.setName(columnName);
                column.setTalendType("String_Node_Str");
                TaggedValue tv=TaggedValueHelper.createTaggedValue(COLUMN_FAMILY,metadataConnection.getSchema());
                column.getTaggedValue().add(tv);
                toReturn.add(column);
                columnExsit.add(exsistColumn);
              }
            }
          }
          columnExsit=null;
        }
      }
    }
  }
 catch (  IOException e) {
    ExceptionHandler.process(e);
  }
  return toReturn;
}

Fixed version (ground truth):
@Override public List<TdColumn> returnMetadataColumnsFromTable(String tableName,IMetadataConnection metadataConnection){
  List<TdColumn> toReturn=new ArrayList<TdColumn>();
  try {
    HBaseAdmin hAdmin=getAdmin(metadataConnection);
    Configuration config=hAdmin.getConfiguration();
    org.apache.hadoop.hbase.client.Scan scan=new org.apache.hadoop.hbase.client.Scan();
    org.apache.hadoop.hbase.client.HTable table=new org.apache.hadoop.hbase.client.HTable(config,tableName);
    scan.addFamily(metadataConnection.getSchema().getBytes());
    ResultScanner resultSetscanner=table.getScanner(scan);
    while (resultSetscanner.iterator().hasNext()) {
      Result result=resultSetscanner.iterator().next();
      if (result != null) {
        List<KeyValue> list=result.list();
        if (list != null) {
          List<String> columnExsit=new ArrayList<String>();
          for (          KeyValue kv : list) {
            String columnName=Bytes.toStringBinary(kv.getQualifier());
            String familyName=Bytes.toStringBinary(kv.getFamily());
            if (columnName != null) {
              String exsistColumn=columnName + "String_Node_Str" + familyName;
              if (!columnExsit.contains(columnExsit)) {
                TdColumn column=RelationalFactory.eINSTANCE.createTdColumn();
                column.setLabel(columnName);
                column.setName(columnName);
                column.setTalendType("String_Node_Str");
                TaggedValue tv=TaggedValueHelper.createTaggedValue(COLUMN_FAMILY,metadataConnection.getSchema());
                column.getTaggedValue().add(tv);
                toReturn.add(column);
                columnExsit.add(exsistColumn);
              }
            }
          }
          columnExsit=null;
        }
      }
    }
  }
 catch (  IOException e) {
    ExceptionHandler.process(e);
  }
  return toReturn;
}