Program: 137655
Project: 137655
Buggy source:
protected ModelElementIndicator[] translateSelectedNodeIntoIndicator(Object[] objs){
  List<IRepositoryNode> reposList=new ArrayList<IRepositoryNode>();
  for (  Object obj : objs) {
    if (obj instanceof MDMXmlElementRepNode) {
      boolean isleaf=isLeaf((MDMXmlElementRepNode)obj);
      if (isleaf) {
        reposList.add((RepositoryNode)obj);
      }
    }
    if (obj instanceof DBColumnRepNode || obj instanceof DFColumnRepNode) {
      reposList.add((RepositoryNode)obj);
    }
    if (obj instanceof DBTableRepNode || obj instanceof DBViewRepNode || obj instanceof DFTableRepNode) {
      List<IRepositoryNode> children=((IRepositoryNode)obj).getChildren().get(0).getChildren();
      reposList.addAll(children);
    }
 else     if (obj instanceof MDMXmlElementRepNode) {
      boolean isLeaf=RepositoryNodeHelper.getMdmChildren(obj,true).length > 0;
      if (!isLeaf) {
        List<IRepositoryNode> children=((IRepositoryNode)obj).getChildren();
        reposList.addAll(children);
      }
    }
 else     if (obj instanceof TdColumn) {
      reposList.add(RepositoryNodeHelper.recursiveFind((TdColumn)obj));
    }
 else     if (obj instanceof MetadataColumn) {
      reposList.add(RepositoryNodeHelper.recursiveFind((MetadataColumn)obj));
    }
 else     if (obj instanceof TdXmlElementType) {
      reposList.add(RepositoryNodeHelper.recursiveFind((TdXmlElementType)obj));
    }
  }
  if (reposList.size() == 0) {
    return new ModelElementIndicator[0];
  }
  boolean isMdm=false;
  boolean isDelimitedFile=false;
  if (objs != null && objs.length != 0) {
    isMdm=objs[0] instanceof MetadataXmlElementTypeRepositoryObject || objs[0] instanceof MDMXmlElementRepNode;
    isDelimitedFile=objs[0] instanceof DFTableRepNode || objs[0] instanceof DFColumnRepNode;
    if (!(reposList.get(0) instanceof DBColumnRepNode || isMdm || isDelimitedFile)) {
      return null;
    }
  }
  List<ModelElementIndicator> modelElementIndicatorList=new ArrayList<ModelElementIndicator>();
  for (  ModelElementIndicator modelElementIndicator : getAllTheElementIndicator()) {
    if (reposList.contains(modelElementIndicator.getModelElementRepositoryNode())) {
      modelElementIndicatorList.add(modelElementIndicator);
      reposList.remove(modelElementIndicator.getModelElementRepositoryNode());
    }
  }
  for (  IRepositoryNode repObj : reposList) {
    ModelElementIndicator temp=isMdm ? ModelElementIndicatorHelper.createXmlElementIndicator(repObj) : isDelimitedFile ? ModelElementIndicatorHelper.createDFColumnIndicator(repObj) : ModelElementIndicatorHelper.createColumnIndicator(repObj);
    modelElementIndicatorList.add(temp);
  }
  return modelElementIndicatorList.toArray(new ModelElementIndicator[modelElementIndicatorList.size()]);
}

Fixed version (ground truth):
protected ModelElementIndicator[] translateSelectedNodeIntoIndicator(Object[] objs){
  List<IRepositoryNode> reposList=new ArrayList<IRepositoryNode>();
  for (  Object obj : objs) {
    if (obj instanceof MDMXmlElementRepNode) {
      boolean isleaf=isLeaf((MDMXmlElementRepNode)obj);
      if (isleaf) {
        reposList.add((RepositoryNode)obj);
      }
    }
    if (obj instanceof DBColumnRepNode || obj instanceof DFColumnRepNode) {
      reposList.add((RepositoryNode)obj);
    }
    if (obj instanceof DBTableRepNode || obj instanceof DBViewRepNode || obj instanceof DFTableRepNode) {
      List<IRepositoryNode> children=((IRepositoryNode)obj).getChildren().get(0).getChildren();
      reposList.addAll(children);
    }
 else     if (obj instanceof MDMXmlElementRepNode) {
      boolean isLeaf=RepositoryNodeHelper.getMdmChildren(obj,true).length > 0;
      if (!isLeaf) {
        List<IRepositoryNode> children=((IRepositoryNode)obj).getChildren();
        reposList.addAll(children);
      }
    }
 else     if (obj instanceof MetadataColumn || obj instanceof TdXmlElementType) {
      RepositoryNode repNode=RepositoryNodeHelper.recursiveFind((ModelElement)obj);
      if (repNode == null) {
        repNode=RepositoryNodeHelper.createRepositoryNode((ModelElement)obj);
      }
      reposList.add(repNode);
    }
  }
  if (reposList.size() == 0) {
    return new ModelElementIndicator[0];
  }
  boolean isMdm=false;
  boolean isDelimitedFile=false;
  if (objs != null && objs.length != 0) {
    isMdm=objs[0] instanceof MetadataXmlElementTypeRepositoryObject || objs[0] instanceof MDMXmlElementRepNode;
    isDelimitedFile=objs[0] instanceof DFTableRepNode || objs[0] instanceof DFColumnRepNode;
    if (!(reposList.get(0) instanceof DBColumnRepNode || isMdm || isDelimitedFile)) {
      return null;
    }
  }
  List<ModelElementIndicator> modelElementIndicatorList=new ArrayList<ModelElementIndicator>();
  for (  ModelElementIndicator modelElementIndicator : getAllTheElementIndicator()) {
    if (reposList.contains(modelElementIndicator.getModelElementRepositoryNode())) {
      modelElementIndicatorList.add(modelElementIndicator);
      reposList.remove(modelElementIndicator.getModelElementRepositoryNode());
    }
  }
  for (  IRepositoryNode repObj : reposList) {
    ModelElementIndicator temp=isMdm ? ModelElementIndicatorHelper.createXmlElementIndicator(repObj) : isDelimitedFile ? ModelElementIndicatorHelper.createDFColumnIndicator(repObj) : ModelElementIndicatorHelper.createColumnIndicator(repObj);
    modelElementIndicatorList.add(temp);
  }
  return modelElementIndicatorList.toArray(new ModelElementIndicator[modelElementIndicatorList.size()]);
}