Program: 139200
Project: 139200
Buggy source:
protected void evalSchemaIndicLow(final CatalogIndicator catalogIndic,final SchemaIndicator schemaIndic,final Catalog tdCatalog,final TdSchema tdSchema,ReturnCode ok) throws SQLException {
  boolean hasSchema=tdSchema != null;
  boolean hasCatalog=tdCatalog != null;
  String catName=hasCatalog ? tdCatalog.getName() : null;
  String schemaName=hasSchema ? tdSchema.getName() : null;
  schemaIndic.setAnalyzedElement(hasSchema ? tdSchema : tdCatalog);
  TableBuilder tableBuilder=new TableBuilder(connection);
  int tableCount=0;
  final String[] tablePatterns=tablePattern != null && tablePattern.contains(String.valueOf(FILTER_SEP)) ? StringUtils.split(this.tablePattern,FILTER_SEP) : new String[]{this.tablePattern};
  for (  String pat : tablePatterns) {
    String trimPat=pat != null && !"String_Node_Str".equals(pat) ? pat.trim() : null;
    List<? extends NamedColumnSet> tables=tableBuilder.getColumnSets(catName,schemaName,trimPat);
    for (    NamedColumnSet t : tables) {
      tableCount++;
      evalAllCounts(catName,schemaName,t,schemaIndic,true,ok);
    }
  }
  schemaIndic.setTableCount(tableCount);
  ViewBuilder viewBuilder=new ViewBuilder(connection);
  int viewCount=0;
  final String[] viewPatterns=viewPattern != null && viewPattern.contains(String.valueOf(FILTER_SEP)) ? StringUtils.split(this.viewPattern,FILTER_SEP) : new String[]{this.viewPattern};
  for (  String pat : viewPatterns) {
    String trimPat=pat != null && !"String_Node_Str".equals(pat) ? pat.trim() : pat;
    List<? extends NamedColumnSet> views=viewBuilder.getColumnSets(catName,schemaName,trimPat);
    for (    NamedColumnSet t : views) {
      viewCount++;
      evalAllCounts(catName,schemaName,t,schemaIndic,false,ok);
    }
  }
  schemaIndic.setViewCount(viewCount);
  if (hasCatalog && hasSchema) {
    this.addToConnectionIndicator(catalogIndic);
    catalogIndic.addSchemaIndicator(schemaIndic);
    catalogIndic.setTableCount(catalogIndic.getTableCount() + tableCount);
    catalogIndic.setTableRowCount(catalogIndic.getTableRowCount() + schemaIndic.getTableRowCount());
    catalogIndic.setViewRowCount(catalogIndic.getViewRowCount() + schemaIndic.getViewRowCount());
  }
 else   if (!hasCatalog) {
    this.addToConnectionIndicator(schemaIndic);
  }
 else   if (!hasSchema) {
    if (SchemaPackage.eINSTANCE.getCatalogIndicator().equals(schemaIndic.eClass())) {
      this.addToConnectionIndicator(schemaIndic);
    }
 else {
      log.error("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
protected void evalSchemaIndicLow(final CatalogIndicator catalogIndic,final SchemaIndicator schemaIndic,final Catalog tdCatalog,final TdSchema tdSchema,ReturnCode ok) throws SQLException {
  boolean hasSchema=tdSchema != null;
  boolean hasCatalog=tdCatalog != null;
  String catName=hasCatalog ? tdCatalog.getName() : null;
  String schemaName=hasSchema ? tdSchema.getName() : null;
  schemaIndic.setAnalyzedElement(hasSchema ? tdSchema : tdCatalog);
  TableBuilder tableBuilder=new TableBuilder(connection);
  int tableCount=0;
  final String[] tablePatterns=tablePattern != null && tablePattern.contains(String.valueOf(FILTER_SEP)) ? StringUtils.split(this.tablePattern,FILTER_SEP) : new String[]{this.tablePattern};
  for (  String pat : tablePatterns) {
    String trimPat=pat != null && !"String_Node_Str".equals(pat) ? pat.trim().toUpperCase() : null;
    List<? extends NamedColumnSet> tables=tableBuilder.getColumnSets(catName,schemaName,trimPat);
    for (    NamedColumnSet t : tables) {
      tableCount++;
      evalAllCounts(catName,schemaName,t,schemaIndic,true,ok);
    }
  }
  schemaIndic.setTableCount(tableCount);
  ViewBuilder viewBuilder=new ViewBuilder(connection);
  int viewCount=0;
  final String[] viewPatterns=viewPattern != null && viewPattern.contains(String.valueOf(FILTER_SEP)) ? StringUtils.split(this.viewPattern,FILTER_SEP) : new String[]{this.viewPattern};
  for (  String pat : viewPatterns) {
    String trimPat=pat != null && !"String_Node_Str".equals(pat) ? pat.trim().toUpperCase() : null;
    List<? extends NamedColumnSet> views=viewBuilder.getColumnSets(catName,schemaName,trimPat);
    for (    NamedColumnSet t : views) {
      viewCount++;
      evalAllCounts(catName,schemaName,t,schemaIndic,false,ok);
    }
  }
  schemaIndic.setViewCount(viewCount);
  if (hasCatalog && hasSchema) {
    this.addToConnectionIndicator(catalogIndic);
    catalogIndic.addSchemaIndicator(schemaIndic);
    catalogIndic.setTableCount(catalogIndic.getTableCount() + tableCount);
    catalogIndic.setTableRowCount(catalogIndic.getTableRowCount() + schemaIndic.getTableRowCount());
    catalogIndic.setViewRowCount(catalogIndic.getViewRowCount() + schemaIndic.getViewRowCount());
  }
 else   if (!hasCatalog) {
    this.addToConnectionIndicator(schemaIndic);
  }
 else   if (!hasSchema) {
    if (SchemaPackage.eINSTANCE.getCatalogIndicator().equals(schemaIndic.eClass())) {
      this.addToConnectionIndicator(schemaIndic);
    }
 else {
      log.error("String_Node_Str");
    }
  }
}