Program: 69738
Project: 69738
Buggy source:
/** 
 * Perform a search for the given search value in the search result providers and clear any GUI errors that might be on the page
 * @param searchValue
 * @param ureq
 */
private void doSearchGroups(String searchValue,UserRequest ureq){
  if (StringHelper.containsNonWhitespace(searchValue)) {
    SearchBusinessGroupParams param1s=new SearchBusinessGroupParams();
    param1s.setNameOrDesc(searchValue);
    List<BusinessGroup> group1s=businessGroupService.findBusinessGroups(param1s,null,0,-1);
    SearchBusinessGroupParams param2s=new SearchBusinessGroupParams();
    param2s.setCourseTitle(searchValue);
    List<BusinessGroup> group2s=businessGroupService.findBusinessGroups(param2s,null,0,-1);
    List<Long> groupKeysWithRelations=PersistenceHelper.toKeys(group1s);
    groupKeysWithRelations.addAll(PersistenceHelper.toKeys(group2s));
    List<BGRepositoryEntryRelation> resources=businessGroupService.findRelationToRepositoryEntries(groupKeysWithRelations,0,-1);
    List<GroupWrapper> groups=new ArrayList<GroupWrapper>();
    for (    BusinessGroup group : group1s) {
      StringBuilder sb=new StringBuilder();
      for (      BGRepositoryEntryRelation resource : resources) {
        if (resource.getGroupKey().equals(group.getKey())) {
          if (sb.length() > 0)           sb.append("String_Node_Str");
          sb.append(resource.getRepositoryEntryDisplayName());
        }
      }
      GroupWrapper wrapper=new GroupWrapper(group,sb.toString());
      wrapper.setTutor(createSelection("String_Node_Str" + group.getKey()));
      wrapper.setParticipant(createSelection("String_Node_Str" + group.getKey()));
      groups.add(wrapper);
    }
    tableDataModel.setObjects(groups);
    errorComp.clearError();
  }
}

Fixed version (ground truth):
/** 
 * Perform a search for the given search value in the search result providers and clear any GUI errors that might be on the page
 * @param searchValue
 * @param ureq
 */
private void doSearchGroups(String searchValue,UserRequest ureq){
  if (StringHelper.containsNonWhitespace(searchValue)) {
    SearchBusinessGroupParams param1s=new SearchBusinessGroupParams();
    param1s.setNameOrDesc(searchValue);
    List<BusinessGroup> group1s=businessGroupService.findBusinessGroups(param1s,null,0,-1);
    SearchBusinessGroupParams param2s=new SearchBusinessGroupParams();
    param2s.setCourseTitle(searchValue);
    List<BusinessGroup> group2s=businessGroupService.findBusinessGroups(param2s,null,0,-1);
    List<Long> groupKeysWithRelations=PersistenceHelper.toKeys(group1s);
    groupKeysWithRelations.addAll(PersistenceHelper.toKeys(group2s));
    List<BGRepositoryEntryRelation> resources=businessGroupService.findRelationToRepositoryEntries(groupKeysWithRelations,0,-1);
    List<GroupWrapper> groups=new ArrayList<GroupWrapper>();
    for (    BusinessGroup group : group1s) {
      StringBuilder sb=new StringBuilder();
      for (      BGRepositoryEntryRelation resource : resources) {
        if (resource.getGroupKey().equals(group.getKey())) {
          if (sb.length() > 0)           sb.append("String_Node_Str");
          sb.append(resource.getRepositoryEntryDisplayName());
        }
      }
      GroupWrapper wrapper=new GroupWrapper(group,sb.toString());
      wrapper.setTutor(createSelection("String_Node_Str" + group.getKey()));
      wrapper.setParticipant(createSelection("String_Node_Str" + group.getKey()));
      groups.add(wrapper);
    }
    table.reset();
    tableDataModel.setObjects(groups);
    errorComp.clearError();
  }
}