Program: 96465
Project: 96465
Buggy source:
@SuppressWarnings({"String_Node_Str"}) public Object[] getElements(Object input){
  if (input instanceof Collection) {
    dependenciesByBundle=new HashMap<IBundle,Set<BundleDependency>>();
    Set<IBundle> bundles=new HashSet<IBundle>((Collection<IBundle>)input);
    if (!"String_Node_Str".equals(searchControl.getSearchText().getText()) && searchControl.getSearchText().getText().trim().length() > 0) {
      String searchText=searchControl.getSearchText().getText().trim() + "String_Node_Str";
      StringMatcher matcher=new StringMatcher(searchText,true,false);
      for (      IBundle dep : new HashSet<IBundle>(bundles)) {
        boolean filter=true;
        if (matcher.match(dep.getSymbolicName())) {
          filter=false;
        }
        if (matcher.match(dep.getSymbolicName() + "String_Node_Str" + dep.getVersion()+ "String_Node_Str")) {
          filter=false;
        }
        if (filter) {
          bundles.remove(dep);
        }
      }
    }
    this.contentResult=new BundleDependencyContentResult(bundles);
    Set<BundleDependency> dependencies=new HashSet<BundleDependency>();
    if (showPackage) {
      Set<IBundle> bundlesToProcess=new HashSet<IBundle>(bundles);
      Set<IBundle> alreadyProcessedBundles=new HashSet<IBundle>();
      int degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addOutgoingPackageDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
      bundlesToProcess=new HashSet<IBundle>(bundles);
      alreadyProcessedBundles=new HashSet<IBundle>();
      degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addIncomingPackageDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
    }
 else     if (showServices) {
      Set<IBundle> bundlesToProcess=new HashSet<IBundle>(bundles);
      Set<IBundle> alreadyProcessedBundles=new HashSet<IBundle>();
      int degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addOutgoingServiceDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
      bundlesToProcess=new HashSet<IBundle>(bundles);
      alreadyProcessedBundles=new HashSet<IBundle>();
      degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addIncomingServiceDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
    }
    if ("String_Node_Str".equals(searchControl.getSearchText().getText()) || searchControl.getSearchText().getText().trim().length() == 0) {
      this.contentResult=null;
    }
    return dependencies.toArray(new BundleDependency[dependencies.size()]);
  }
  return NO_ELEMENTS;
}

Fixed version (ground truth):
@SuppressWarnings({"String_Node_Str"}) public Object[] getElements(Object input){
  if (input instanceof Collection) {
    dependenciesByBundle=new HashMap<IBundle,Set<BundleDependency>>();
    Set<IBundle> bundleset=new HashSet<IBundle>((Collection<IBundle>)input);
    if (!"String_Node_Str".equals(searchControl.getSearchText().getText()) && searchControl.getSearchText().getText().trim().length() > 0) {
      String searchText=searchControl.getSearchText().getText().trim() + "String_Node_Str";
      StringMatcher matcher=new StringMatcher(searchText,true,false);
      for (      IBundle dep : new HashSet<IBundle>(bundleset)) {
        boolean filter=true;
        if (matcher.match(dep.getSymbolicName())) {
          filter=false;
        }
        if (matcher.match(dep.getSymbolicName() + "String_Node_Str" + dep.getVersion()+ "String_Node_Str")) {
          filter=false;
        }
        if (filter) {
          bundleset.remove(dep);
        }
      }
    }
    this.contentResult=new BundleDependencyContentResult(bundleset);
    Set<BundleDependency> dependencies=new HashSet<BundleDependency>();
    if (showPackage) {
      Set<IBundle> bundlesToProcess=new HashSet<IBundle>(bundleset);
      Set<IBundle> alreadyProcessedBundles=new HashSet<IBundle>();
      int degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addOutgoingPackageDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
      bundlesToProcess=new HashSet<IBundle>(bundleset);
      alreadyProcessedBundles=new HashSet<IBundle>();
      degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addIncomingPackageDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
    }
 else     if (showServices) {
      Set<IBundle> bundlesToProcess=new HashSet<IBundle>(bundleset);
      Set<IBundle> alreadyProcessedBundles=new HashSet<IBundle>();
      int degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addOutgoingServiceDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
      bundlesToProcess=new HashSet<IBundle>(bundleset);
      alreadyProcessedBundles=new HashSet<IBundle>();
      degree=0;
      do {
        degree++;
        Set<IBundle> copy=new HashSet<IBundle>(bundlesToProcess);
        bundlesToProcess=new HashSet<IBundle>();
        for (        IBundle b : copy) {
          bundlesToProcess.addAll(addIncomingServiceDependencies(dependencies,b,degree,alreadyProcessedBundles));
        }
      }
 while (bundlesToProcess.size() > 0);
    }
    if ("String_Node_Str".equals(searchControl.getSearchText().getText()) || searchControl.getSearchText().getText().trim().length() == 0) {
      this.contentResult=null;
    }
    return dependencies.toArray(new BundleDependency[dependencies.size()]);
  }
  return NO_ELEMENTS;
}