Program: 138143
Project: 138143
Buggy source:
/** 
 * Create TableFolderNodeRepositoryNode.
 * @param node parent RepositoryNode
 * @param metadataObject parent CatalogViewObject or SchemaViewObject
 */
private void createRepositoryNodeViewFolderNode(List<IRepositoryNode> node,IRepositoryViewObject metadataObject){
  List<TdView> views=new ArrayList<TdView>();
  String filterCharacter=null;
  try {
    if (metadataObject instanceof MetadataCatalogRepositoryObject) {
      viewObject=((MetadataCatalogRepositoryObject)metadataObject).getViewObject();
      catalog=((MetadataCatalogRepositoryObject)metadataObject).getCatalog();
      item=(ConnectionItem)viewObject.getProperty().getItem();
      views=PackageHelper.getViews(catalog);
      filterCharacter=RepositoryNodeHelper.getViewFilter(catalog,schema);
      if (views.isEmpty()) {
        if (!isOnFilterring()) {
          connection=item.getConnection();
          views=DqRepositoryViewService.getViews(connection,catalog,null,true);
          if (views.size() > 0) {
            ProxyRepositoryFactory.getInstance().save(item);
          }
        }
      }
 else {
        ConnectionUtils.retrieveColumn(views);
      }
    }
 else     if (metadataObject instanceof MetadataSchemaRepositoryObject) {
      viewObject=((MetadataSchemaRepositoryObject)metadataObject).getViewObject();
      schema=((MetadataSchemaRepositoryObject)metadataObject).getSchema();
      item=(ConnectionItem)viewObject.getProperty().getItem();
      views=PackageHelper.getViews(schema);
      filterCharacter=RepositoryNodeHelper.getViewFilter(catalog,schema);
      RepositoryNode parent=metadataObject.getRepositoryNode().getParent();
      IRepositoryViewObject object=parent.getObject();
      if (object instanceof MetadataCatalogRepositoryObject && filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
        filterCharacter=RepositoryNodeHelper.getViewFilter(((MetadataCatalogRepositoryObject)object).getCatalog(),null);
      }
      if (views.isEmpty()) {
        if (!isOnFilterring()) {
          connection=item.getConnection();
          views=DqRepositoryViewService.getViews(connection,schema,null,true);
          if (views.size() > 0) {
            ProxyRepositoryFactory.getInstance().save(item);
          }
        }
      }
 else {
        ConnectionUtils.retrieveColumn(views);
      }
    }
  }
 catch (  Exception e) {
    log.error(e,e);
  }
  if (filterCharacter != null && !filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
    views=RepositoryNodeHelper.filterViews(views,filterCharacter);
  }
  createViewRepositoryNode(views,node);
}

Fixed version (ground truth):
/** 
 * Create TableFolderNodeRepositoryNode.
 * @param node parent RepositoryNode
 * @param metadataObject parent CatalogViewObject or SchemaViewObject
 */
private void createRepositoryNodeViewFolderNode(List<IRepositoryNode> node,IRepositoryViewObject metadataObject){
  List<TdView> views=new ArrayList<TdView>();
  String filterCharacter=null;
  try {
    if (metadataObject instanceof MetadataCatalogRepositoryObject) {
      viewObject=((MetadataCatalogRepositoryObject)metadataObject).getViewObject();
      catalog=((MetadataCatalogRepositoryObject)metadataObject).getCatalog();
      item=(ConnectionItem)viewObject.getProperty().getItem();
      views=PackageHelper.getViews(catalog);
      filterCharacter=RepositoryNodeHelper.getViewFilter(catalog,schema);
      if (views.isEmpty()) {
        if (!isOnFilterring()) {
          connection=item.getConnection();
          views=DqRepositoryViewService.getViews(connection,catalog,null,true);
          if (views.size() > 0) {
            ProxyRepositoryFactory.getInstance().save(item);
          }
        }
      }
      ConnectionUtils.retrieveColumn(views);
    }
 else     if (metadataObject instanceof MetadataSchemaRepositoryObject) {
      viewObject=((MetadataSchemaRepositoryObject)metadataObject).getViewObject();
      schema=((MetadataSchemaRepositoryObject)metadataObject).getSchema();
      item=(ConnectionItem)viewObject.getProperty().getItem();
      views=PackageHelper.getViews(schema);
      filterCharacter=RepositoryNodeHelper.getViewFilter(catalog,schema);
      RepositoryNode parent=metadataObject.getRepositoryNode().getParent();
      IRepositoryViewObject object=parent.getObject();
      if (object instanceof MetadataCatalogRepositoryObject && filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
        filterCharacter=RepositoryNodeHelper.getViewFilter(((MetadataCatalogRepositoryObject)object).getCatalog(),null);
      }
      if (views.isEmpty()) {
        if (!isOnFilterring()) {
          connection=item.getConnection();
          views=DqRepositoryViewService.getViews(connection,schema,null,true);
          if (views.size() > 0) {
            ProxyRepositoryFactory.getInstance().save(item);
          }
        }
      }
 else {
        ConnectionUtils.retrieveColumn(views);
      }
    }
  }
 catch (  Exception e) {
    log.error(e,e);
  }
  if (filterCharacter != null && !filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
    views=RepositoryNodeHelper.filterViews(views,filterCharacter);
  }
  createViewRepositoryNode(views,node);
}