Program: 107492
Project: 107492
Buggy source:
@Override public List<VolumeVO> searchForVolumes(Criteria c){
  Filter searchFilter=new Filter(VolumeVO.class,c.getOrderBy(),c.getAscending(),c.getOffset(),c.getLimit());
  Object[] accountIds=(Object[])c.getCriteria(Criteria.ACCOUNTID);
  Object type=c.getCriteria(Criteria.VTYPE);
  Long vmInstanceId=(Long)c.getCriteria(Criteria.INSTANCEID);
  Object zone=c.getCriteria(Criteria.DATACENTERID);
  Object pod=c.getCriteria(Criteria.PODID);
  Object domainId=c.getCriteria(Criteria.DOMAINID);
  Object id=c.getCriteria(Criteria.ID);
  Object keyword=c.getCriteria(Criteria.KEYWORD);
  Object name=c.getCriteria(Criteria.NAME);
  SearchBuilder<VolumeVO> sb=_volumeDao.createSearchBuilder();
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.LIKE);
  sb.and("String_Node_Str",sb.entity().getId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getAccountId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getAccountId(),SearchCriteria.Op.IN);
  sb.and("String_Node_Str",sb.entity().getVolumeType(),SearchCriteria.Op.LIKE);
  sb.and("String_Node_Str",sb.entity().getInstanceId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getDataCenterId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getPodId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getStatus(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getDestroyed(),SearchCriteria.Op.EQ);
  if ((accountIds == null) && (domainId != null)) {
    SearchBuilder<DomainVO> domainSearch=_domainDao.createSearchBuilder();
    domainSearch.and("String_Node_Str",domainSearch.entity().getPath(),SearchCriteria.Op.LIKE);
    sb.join("String_Node_Str",domainSearch,sb.entity().getDomainId(),domainSearch.entity().getId());
  }
  SearchCriteria<VolumeVO> sc=sb.create();
  if (keyword != null) {
    SearchCriteria<VolumeVO> ssc=_volumeDao.createSearchCriteria();
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    sc.addAnd("String_Node_Str",SearchCriteria.Op.SC,ssc);
  }
  if (name != null) {
    sc.setParameters("String_Node_Str","String_Node_Str" + name + "String_Node_Str");
  }
  if (id != null) {
    sc.setParameters("String_Node_Str",id);
  }
  if (accountIds != null) {
    if ((accountIds.length == 1) && (accountIds[0] != null)) {
      sc.setParameters("String_Node_Str",accountIds[0]);
    }
 else {
      sc.setParameters("String_Node_Str",accountIds);
    }
  }
 else   if (domainId != null) {
    DomainVO domain=_domainDao.findById((Long)domainId);
    sc.setJoinParameters("String_Node_Str","String_Node_Str",domain.getPath() + "String_Node_Str");
  }
  if (type != null) {
    sc.setParameters("String_Node_Str","String_Node_Str" + type + "String_Node_Str");
  }
  if (vmInstanceId != null) {
    sc.setParameters("String_Node_Str",vmInstanceId);
  }
  if (zone != null) {
    sc.setParameters("String_Node_Str",zone);
  }
  if (pod != null) {
    sc.setParameters("String_Node_Str",pod);
  }
  sc.setParameters("String_Node_Str",false);
  List<VolumeVO> allVolumes=_volumeDao.search(sc,searchFilter);
  List<VolumeVO> returnableVolumes=new ArrayList<VolumeVO>();
  for (  VolumeVO v : allVolumes) {
    VMTemplateVO template=_templateDao.findById(v.getTemplateId());
    if (!template.getUniqueName().equalsIgnoreCase("String_Node_Str"))     returnableVolumes.add(v);
  }
  return returnableVolumes;
}

Fixed version (ground truth):
@Override public List<VolumeVO> searchForVolumes(Criteria c){
  Filter searchFilter=new Filter(VolumeVO.class,c.getOrderBy(),c.getAscending(),c.getOffset(),c.getLimit());
  Object[] accountIds=(Object[])c.getCriteria(Criteria.ACCOUNTID);
  Object type=c.getCriteria(Criteria.VTYPE);
  Long vmInstanceId=(Long)c.getCriteria(Criteria.INSTANCEID);
  Object zone=c.getCriteria(Criteria.DATACENTERID);
  Object pod=c.getCriteria(Criteria.PODID);
  Object domainId=c.getCriteria(Criteria.DOMAINID);
  Object id=c.getCriteria(Criteria.ID);
  Object keyword=c.getCriteria(Criteria.KEYWORD);
  Object name=c.getCriteria(Criteria.NAME);
  SearchBuilder<VolumeVO> sb=_volumeDao.createSearchBuilder();
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.LIKE);
  sb.and("String_Node_Str",sb.entity().getId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getAccountId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getAccountId(),SearchCriteria.Op.IN);
  sb.and("String_Node_Str",sb.entity().getVolumeType(),SearchCriteria.Op.LIKE);
  sb.and("String_Node_Str",sb.entity().getInstanceId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getDataCenterId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getPodId(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getName(),SearchCriteria.Op.NLIKE);
  sb.and("String_Node_Str",sb.entity().getStatus(),SearchCriteria.Op.EQ);
  sb.and("String_Node_Str",sb.entity().getDestroyed(),SearchCriteria.Op.EQ);
  if ((accountIds == null) && (domainId != null)) {
    SearchBuilder<DomainVO> domainSearch=_domainDao.createSearchBuilder();
    domainSearch.and("String_Node_Str",domainSearch.entity().getPath(),SearchCriteria.Op.LIKE);
    sb.join("String_Node_Str",domainSearch,sb.entity().getDomainId(),domainSearch.entity().getId());
  }
  SearchCriteria<VolumeVO> sc=sb.create();
  if (keyword != null) {
    SearchCriteria<VolumeVO> ssc=_volumeDao.createSearchCriteria();
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    ssc.addOr("String_Node_Str",SearchCriteria.Op.LIKE,"String_Node_Str" + keyword + "String_Node_Str");
    sc.addAnd("String_Node_Str",SearchCriteria.Op.SC,ssc);
  }
  if (name != null) {
    sc.setParameters("String_Node_Str","String_Node_Str" + name + "String_Node_Str");
  }
  if (id != null) {
    sc.setParameters("String_Node_Str",id);
  }
  if (accountIds != null) {
    if ((accountIds.length == 1) && (accountIds[0] != null)) {
      sc.setParameters("String_Node_Str",accountIds[0]);
    }
 else {
      sc.setParameters("String_Node_Str",accountIds);
    }
  }
 else   if (domainId != null) {
    DomainVO domain=_domainDao.findById((Long)domainId);
    sc.setJoinParameters("String_Node_Str","String_Node_Str",domain.getPath() + "String_Node_Str");
  }
  if (type != null) {
    sc.setParameters("String_Node_Str","String_Node_Str" + type + "String_Node_Str");
  }
  if (vmInstanceId != null) {
    sc.setParameters("String_Node_Str",vmInstanceId);
  }
  if (zone != null) {
    sc.setParameters("String_Node_Str",zone);
  }
  if (pod != null) {
    sc.setParameters("String_Node_Str",pod);
  }
  sc.setParameters("String_Node_Str",false);
  List<VolumeVO> allVolumes=_volumeDao.search(sc,searchFilter);
  List<VolumeVO> returnableVolumes=new ArrayList<VolumeVO>();
  for (  VolumeVO v : allVolumes) {
    VMTemplateVO template=_templateDao.findById(v.getTemplateId());
    if (template != null && template.getUniqueName().equalsIgnoreCase("String_Node_Str")) {
    }
 else {
      returnableVolumes.add(v);
    }
  }
  return returnableVolumes;
}