Program: 69984
Project: 69984
Buggy source:
private <T>TypedQuery<T> createFindDBQuery(SearchBusinessGroupParams params,OLATResource resource,Class<T> resultClass){
  StringBuilder query=new StringBuilder();
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str");
  }
 else {
    query.append("String_Node_Str");
  }
  query.append(org.olat.group.BusinessGroupImpl.class.getName()).append("String_Node_Str");
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append(IdentityImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append(UserImpl.class.getName()).append("String_Node_Str");
  }
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
 else {
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
  boolean where=false;
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    where=true;
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    searchLikeUserProperty(query,"String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeUserProperty(query,"String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
  }
  if (params.getKeys() != null && !params.getKeys().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str");
  }
  if (resource != null) {
    where=where(query,where);
    query.append("String_Node_Str").append("String_Node_Str").append(BGResourceRelation.class.getName()).append("String_Node_Str").append("String_Node_Str");
  }
  if (params.getTypes() != null && !params.getTypes().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str");
  }
  if (params.isOwner() || params.isAttendee() || params.isWaiting()) {
    where=where(query,where);
    boolean subOr=false;
    query.append('(');
    if (params.isOwner()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    if (params.isAttendee()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    if (params.isWaiting()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    query.append(')');
  }
  if (params.isPublicGroup()) {
    where=where(query,where);
    query.append("String_Node_Str").append("String_Node_Str").append(OfferImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
  if (StringHelper.containsNonWhitespace(params.getNameOrDesc())) {
    where=where(query,where);
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
  }
 else {
    if (StringHelper.containsNonWhitespace(params.getExactName())) {
      where=where(query,where);
      query.append("String_Node_Str");
    }
    if (StringHelper.containsNonWhitespace(params.getName())) {
      where=where(query,where);
      searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
    if (StringHelper.containsNonWhitespace(params.getDescription())) {
      where=where(query,where);
      searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
  }
  if (params.getTools() != null && !params.getTools().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str").append(Property.class.getName()).append("String_Node_Str").append("String_Node_Str").append(CollaborationTools.PROP_CAT_BG_COLLABTOOLS).append("String_Node_Str").append("String_Node_Str");
  }
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str");
  }
  TypedQuery<T> dbq=dbInstance.getCurrentEntityManager().createQuery(query.toString(),resultClass);
  if (params.isOwner() || params.isAttendee() || params.isWaiting()) {
    dbq.setParameter("String_Node_Str",params.getIdentity().getKey());
  }
  if (params.isPublicGroup()) {
    dbq.setParameter("String_Node_Str",new Date(),TemporalType.TIMESTAMP);
  }
  if (params.getKeys() != null && !params.getKeys().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getKeys());
  }
  if (resource != null) {
    dbq.setParameter("String_Node_Str",resource.getKey());
  }
  if (params.getTypes() != null && !params.getTypes().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getTypes());
  }
  if (params.getTools() != null && !params.getTools().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getTools());
  }
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getOwnerName()));
  }
  if (StringHelper.containsNonWhitespace(params.getNameOrDesc())) {
    dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getNameOrDesc()));
  }
 else {
    if (StringHelper.containsNonWhitespace(params.getExactName())) {
      dbq.setParameter("String_Node_Str",params.getExactName());
    }
    if (StringHelper.containsNonWhitespace(params.getName())) {
      dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getName()));
    }
    if (StringHelper.containsNonWhitespace(params.getDescription())) {
      dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getDescription()));
    }
  }
  return dbq;
}

Fixed version (ground truth):
private <T>TypedQuery<T> createFindDBQuery(SearchBusinessGroupParams params,OLATResource resource,Class<T> resultClass){
  StringBuilder query=new StringBuilder();
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str");
  }
 else {
    query.append("String_Node_Str");
  }
  query.append(org.olat.group.BusinessGroupImpl.class.getName()).append("String_Node_Str");
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append(IdentityImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append(UserImpl.class.getName()).append("String_Node_Str");
  }
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
 else {
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
  boolean where=false;
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    where=true;
    query.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    searchLikeUserProperty(query,"String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeUserProperty(query,"String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
  }
  if (params.getGroupKeys() != null && !params.getGroupKeys().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str");
  }
  if (resource != null) {
    where=where(query,where);
    query.append("String_Node_Str").append("String_Node_Str").append(BGResourceRelation.class.getName()).append("String_Node_Str").append("String_Node_Str");
  }
  if (params.getTypes() != null && !params.getTypes().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str");
  }
  if (params.isOwner() || params.isAttendee() || params.isWaiting()) {
    where=where(query,where);
    boolean subOr=false;
    query.append('(');
    if (params.isOwner()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    if (params.isAttendee()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    if (params.isWaiting()) {
      subOr=or(query,subOr);
      query.append("String_Node_Str").append(SecurityGroupMembershipImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
    }
    query.append(')');
  }
  if (params.isPublicGroup()) {
    where=where(query,where);
    query.append("String_Node_Str").append("String_Node_Str").append(OfferImpl.class.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  }
  if (StringHelper.containsNonWhitespace(params.getNameOrDesc())) {
    where=where(query,where);
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
    searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    query.append("String_Node_Str");
  }
 else {
    if (StringHelper.containsNonWhitespace(params.getExactName())) {
      where=where(query,where);
      query.append("String_Node_Str");
    }
    if (StringHelper.containsNonWhitespace(params.getName())) {
      where=where(query,where);
      searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
    if (StringHelper.containsNonWhitespace(params.getDescription())) {
      where=where(query,where);
      searchLikeAttribute(query,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
  }
  if (params.getTools() != null && !params.getTools().isEmpty()) {
    where=where(query,where);
    query.append("String_Node_Str").append(Property.class.getName()).append("String_Node_Str").append("String_Node_Str").append(CollaborationTools.PROP_CAT_BG_COLLABTOOLS).append("String_Node_Str").append("String_Node_Str");
  }
  if (BusinessGroup.class.equals(resultClass)) {
    query.append("String_Node_Str");
  }
  TypedQuery<T> dbq=dbInstance.getCurrentEntityManager().createQuery(query.toString(),resultClass);
  if (params.isOwner() || params.isAttendee() || params.isWaiting()) {
    dbq.setParameter("String_Node_Str",params.getIdentity().getKey());
  }
  if (params.isPublicGroup()) {
    dbq.setParameter("String_Node_Str",new Date(),TemporalType.TIMESTAMP);
  }
  if (params.getGroupKeys() != null && !params.getGroupKeys().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getGroupKeys());
  }
  if (resource != null) {
    dbq.setParameter("String_Node_Str",resource.getKey());
  }
  if (params.getTypes() != null && !params.getTypes().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getTypes());
  }
  if (params.getTools() != null && !params.getTools().isEmpty()) {
    dbq.setParameter("String_Node_Str",params.getTools());
  }
  if (StringHelper.containsNonWhitespace(params.getOwnerName())) {
    dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getOwnerName()));
  }
  if (StringHelper.containsNonWhitespace(params.getNameOrDesc())) {
    dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getNameOrDesc()));
  }
 else {
    if (StringHelper.containsNonWhitespace(params.getExactName())) {
      dbq.setParameter("String_Node_Str",params.getExactName());
    }
    if (StringHelper.containsNonWhitespace(params.getName())) {
      dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getName()));
    }
    if (StringHelper.containsNonWhitespace(params.getDescription())) {
      dbq.setParameter("String_Node_Str",makeFuzzyQueryString(params.getDescription()));
    }
  }
  return dbq;
}