Program: 139133
Project: 139133
Buggy source:
/** 
 * DOC Administrator Comment method "getRowsMatchStatement".
 * @return
 */
public String getRowsMatchStatement(){
  Table tablea=(Table)indicator.getAnalyzedElement();
  String tableA=tablea.getName();
  String query="String_Node_Str";
  if (ColumnsetPackage.eINSTANCE.getRowMatchingIndicator() == indicator.eClass()) {
    Table tableb=(Table)ColumnHelper.getColumnSetOwner(((RowMatchingIndicator)indicator).getColumnSetB().get(0));
    String tableB=tableb.getName();
    EList<Column> columnSetA=((RowMatchingIndicator)indicator).getColumnSetA();
    EList<Column> columnSetB=((RowMatchingIndicator)indicator).getColumnSetB();
    String clauseA="String_Node_Str" + dbmsLanguage.from() + getFullyQualifiedTableName(tablea);
    String clauseB="String_Node_Str" + dbmsLanguage.from() + getFullyQualifiedTableName(tableb);
    String where=null;
    String onClause="String_Node_Str";
    String realWhereClause="String_Node_Str";
    String columnsName="String_Node_Str";
    String columnsName2="String_Node_Str";
    for (int i=0; i < columnSetA.size(); i++) {
      String fullColumnAName=getFullyQualifiedTableName(tablea) + "String_Node_Str" + dbmsLanguage.quote(columnSetA.get(i).getName());
      where=dbmsLanguage.and();
      if (i == 0) {
        where=dbmsLanguage.where();
        columnsName+="String_Node_Str" + fullColumnAName + "String_Node_Str";
        columnsName2+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName());
      }
 else {
        onClause+=where;
        realWhereClause+=where;
        columnsName+="String_Node_Str" + fullColumnAName + "String_Node_Str";
        columnsName2+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName())+ "String_Node_Str";
      }
      realWhereClause+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetB.get(i).getName())+ dbmsLanguage.isNull();
      onClause+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName())+ "String_Node_Str"+ "String_Node_Str"+ dbmsLanguage.getDelimiter()+ dbmsLanguage.quote(columnSetB.get(i).getName())+ "String_Node_Str";
    }
    columnsName+="String_Node_Str";
    clauseA+=(tableA.equals(tableB) ? whereDataFilter(tableA,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_A : AnalysisHelper.DATA_FILTER_B)) : whereDataFilter(tableA,null)) + "String_Node_Str";
    clauseB+=(tableB.equals(tableA) ? whereDataFilter(tableB,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_B : AnalysisHelper.DATA_FILTER_A)) : whereDataFilter(tableB,null)) + "String_Node_Str";
    query="String_Node_Str" + getFullyQualifiedTableName(tablea) + (tableA.equals(tableB) ? whereDataFilter(tableA,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_A : AnalysisHelper.DATA_FILTER_B)) : whereDataFilter(tableA,null));
    for (int i=0; i < columnSetA.size(); i++) {
      String clause="String_Node_Str";
      String fullColumnAName=getFullyQualifiedTableName(tablea) + "String_Node_Str" + dbmsLanguage.quote(columnSetA.get(i).getName());
      String columnNameByAlias="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName());
      clause="String_Node_Str" + columnNameByAlias + dbmsLanguage.from()+ clauseA+ "String_Node_Str"+ clauseB+ onClause+ realWhereClause+ "String_Node_Str";
      if (i == 0) {
        clause="String_Node_Str" + fullColumnAName + "String_Node_Str"+ clause;
      }
 else {
        clause="String_Node_Str" + fullColumnAName + "String_Node_Str"+ clause;
      }
      query+=clause;
    }
    query+="String_Node_Str";
  }
  return query;
}

Fixed version (ground truth):
/** 
 * DOC Administrator Comment method "getRowsMatchStatement".
 * @return
 */
public String getRowsMatchStatement(){
  Table tablea=(Table)indicator.getAnalyzedElement();
  String tableA=tablea.getName();
  String query="String_Node_Str";
  if (ColumnsetPackage.eINSTANCE.getRowMatchingIndicator() == indicator.eClass()) {
    Table tableb=(Table)ColumnHelper.getColumnSetOwner(((RowMatchingIndicator)indicator).getColumnSetB().get(0));
    String tableB=tableb.getName();
    EList<Column> columnSetA=((RowMatchingIndicator)indicator).getColumnSetA();
    EList<Column> columnSetB=((RowMatchingIndicator)indicator).getColumnSetB();
    String clauseA="String_Node_Str" + dbmsLanguage.from() + getFullyQualifiedTableName(tablea);
    String clauseB="String_Node_Str" + dbmsLanguage.from() + getFullyQualifiedTableName(tableb);
    String where=null;
    String onClause="String_Node_Str";
    String realWhereClause="String_Node_Str";
    String columnsName="String_Node_Str";
    String columnsName2="String_Node_Str";
    for (int i=0; i < columnSetA.size(); i++) {
      String fullColumnAName=getFullyQualifiedTableName(tablea) + "String_Node_Str" + dbmsLanguage.quote(columnSetA.get(i).getName());
      where=dbmsLanguage.and();
      if (i == 0) {
        where=dbmsLanguage.where();
        columnsName+="String_Node_Str" + fullColumnAName + "String_Node_Str";
        columnsName2+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName());
      }
 else {
        onClause+=where;
        realWhereClause+=where;
        columnsName+="String_Node_Str" + fullColumnAName + "String_Node_Str";
        columnsName2+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName())+ "String_Node_Str";
      }
      realWhereClause+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetB.get(i).getName())+ dbmsLanguage.isNull();
      onClause+="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName())+ "String_Node_Str"+ "String_Node_Str"+ dbmsLanguage.getDelimiter()+ dbmsLanguage.quote(columnSetB.get(i).getName())+ "String_Node_Str";
    }
    columnsName+="String_Node_Str";
    clauseA+=(tableA.equals(tableB) ? whereDataFilter(tableA,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_A : AnalysisHelper.DATA_FILTER_B)) : whereDataFilter(tableA,null)) + "String_Node_Str";
    clauseB+=(tableB.equals(tableA) ? whereDataFilter(tableB,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_B : AnalysisHelper.DATA_FILTER_A)) : whereDataFilter(tableB,null)) + "String_Node_Str";
    query="String_Node_Str" + getFullyQualifiedTableName(tablea);
    for (int i=0; i < columnSetA.size(); i++) {
      String clause="String_Node_Str";
      String fullColumnAName=getFullyQualifiedTableName(tablea) + "String_Node_Str" + dbmsLanguage.quote(columnSetA.get(i).getName());
      String columnNameByAlias="String_Node_Str" + dbmsLanguage.getDelimiter() + dbmsLanguage.quote(columnSetA.get(i).getName());
      clause="String_Node_Str" + columnNameByAlias + dbmsLanguage.from()+ clauseA+ "String_Node_Str"+ clauseB+ onClause+ realWhereClause+ "String_Node_Str";
      if (i == 0) {
        clause="String_Node_Str" + fullColumnAName + "String_Node_Str"+ clause;
      }
 else {
        clause="String_Node_Str" + fullColumnAName + "String_Node_Str"+ clause;
      }
      query+=clause;
    }
    query+="String_Node_Str" + (tableA.equals(tableB) ? andDataFilter(tableA,(getdataFilterIndex(null) == AnalysisHelper.DATA_FILTER_A ? AnalysisHelper.DATA_FILTER_A : AnalysisHelper.DATA_FILTER_B)) : andDataFilter(tableA,null));
    ;
  }
  return query;
}