Program: 137678
Project: 137678
Buggy source:
@Override public List<IRepositoryNode> getChildren(){
  reloadConnectionViewObject();
  if (!this.isReload() && !children.isEmpty()) {
    return filterResultsIfAny(children);
  }
  children.clear();
  String filterCharater=null;
  List<TdColumn> tdcolumns=new ArrayList<TdColumn>();
  IRepositoryViewObject meataColumnSetObject=this.getParent().getObject();
  if (meataColumnSetObject instanceof TdTableRepositoryObject) {
    TdTableRepositoryObject tdTableRepositoryObject=(TdTableRepositoryObject)meataColumnSetObject;
    tdTable=tdTableRepositoryObject.getTdTable();
    columns=tdTable.getColumns();
    filterCharater=ColumnHelper.getColumnFilter(tdTable);
    item=(ConnectionItem)tdTableRepositoryObject.getViewObject().getProperty().getItem();
  }
 else   if (meataColumnSetObject instanceof TdViewRepositoryObject) {
    TdViewRepositoryObject tdViewRepositoryObject=(TdViewRepositoryObject)meataColumnSetObject;
    tdView=tdViewRepositoryObject.getTdView();
    columns=tdView.getColumns();
    filterCharater=ColumnHelper.getColumnFilter(tdView);
    item=(ConnectionItem)tdViewRepositoryObject.getViewObject().getProperty().getItem();
  }
  connection=item.getConnection();
  if (columns.size() <= 0 && !isOnFilterring()) {
    try {
      if (tdTable != null) {
        tdcolumns=DqRepositoryViewService.getColumns(connection,tdTable,null,true);
      }
 else       if (tdView != null) {
        tdcolumns=DqRepositoryViewService.getColumns(connection,tdView,null,true);
      }
      if (tdcolumns.size() > 0) {
        ElementWriterFactory.getInstance().createDataProviderWriter().save(item,false);
      }
    }
 catch (    RuntimeException e) {
      throw new RuntimeException(e);
    }
catch (    Exception e) {
      log.error(e,e);
    }
  }
 else {
    for (    MetadataColumn mec : columns) {
      tdcolumns.add((TdColumn)mec);
    }
  }
  if (filterCharater != null && !filterCharater.equals("String_Node_Str")) {
    tdcolumns=RepositoryNodeHelper.filterColumns(tdcolumns,filterCharater);
  }
  createTdcolumnsNode(tdcolumns,children);
  this.setReload(false);
  return filterResultsIfAny(children);
}

Fixed version (ground truth):
@Override public List<IRepositoryNode> getChildren(){
  reloadConnectionViewObject();
  if (!this.isReload() && !children.isEmpty()) {
    return filterResultsIfAny(children);
  }
  children.clear();
  String filterCharater=null;
  List<TdColumn> tdcolumns=new ArrayList<TdColumn>();
  IRepositoryViewObject meataColumnSetObject=this.getParent().getObject();
  if (meataColumnSetObject instanceof TdTableRepositoryObject) {
    TdTableRepositoryObject tdTableRepositoryObject=(TdTableRepositoryObject)meataColumnSetObject;
    tdTable=tdTableRepositoryObject.getTdTable();
    columns=tdTable.getColumns();
    filterCharater=ColumnHelper.getColumnFilter(tdTable);
    item=(ConnectionItem)tdTableRepositoryObject.getViewObject().getProperty().getItem();
  }
 else   if (meataColumnSetObject instanceof TdViewRepositoryObject) {
    TdViewRepositoryObject tdViewRepositoryObject=(TdViewRepositoryObject)meataColumnSetObject;
    tdView=tdViewRepositoryObject.getTdView();
    columns=tdView.getColumns();
    filterCharater=ColumnHelper.getColumnFilter(tdView);
    item=(ConnectionItem)tdViewRepositoryObject.getViewObject().getProperty().getItem();
  }
  connection=item.getConnection();
  if (columns.size() <= 0 && !isOnFilterring()) {
    try {
      if (tdTable != null) {
        tdcolumns=DqRepositoryViewService.getColumns(connection,tdTable,null,true);
      }
 else       if (tdView != null) {
        tdcolumns=DqRepositoryViewService.getColumns(connection,tdView,null,true);
      }
      if (tdcolumns.size() > 0) {
        ElementWriterFactory.getInstance().createDataProviderWriter().save(item,false);
      }
    }
 catch (    MissingDriverException e) {
      throw e;
    }
catch (    Exception e) {
      log.error(e,e);
    }
  }
 else {
    for (    MetadataColumn mec : columns) {
      tdcolumns.add((TdColumn)mec);
    }
  }
  if (filterCharater != null && !filterCharater.equals("String_Node_Str")) {
    tdcolumns=RepositoryNodeHelper.filterColumns(tdcolumns,filterCharater);
  }
  createTdcolumnsNode(tdcolumns,children);
  this.setReload(false);
  return filterResultsIfAny(children);
}