[Demonstration 1]

[Buggy Method]
@Override
@SuppressWarnings("unchecked")
public List<Member> getItems(String[] sortBy, SortOrder[] sortOrder, Integer limit, Integer offset, Filter<Member> filter) {
    StringBuilder queryStr = new StringBuilder(SELECT);
    if (filter != null) {
        queryStr.append(filter.buildWhere());
    }
    queryStr.append(GROUP_BY);
    if (sortBy != null) {
        queryStr.append(" ORDER BY ");
        for (int i = 0; i < sortBy.length; i++) {
            if (sortBy[i].equals("debtCount")) {
                queryStr.append("count(d.").append(Debt.DB_ID).append(") ");
            } else {
                queryStr.append(Member.DB_TABLE).append(".").append(Utils.camelCaseToUnderscore(sortBy[i])).append(" ");
            }
            queryStr.append(sortOrder[i].equals(SortOrder.ASCENDING) ? "ASC NULLS LAST," : "DESC NULLS FIRST,");
            if (i == sortBy.length - 1) {
                queryStr.delete(queryStr.length() - 1, queryStr.length());
            }
        }
    }
    if (limit != null) {
        queryStr.append(" LIMIT :limit");
    }
    if (offset != null) {
        queryStr.append(" OFFSET :offset");
    }
    Query query = createTypedNativeQuery(queryStr.toString());
    if (filter != null) {
        filter.setQueryParameters(query);
    }
    if (limit != null) {
        query.setParameter("limit", limit);
    }
    if (offset != null) {
        query.setParameter("offset", offset);
    }
    return query.getResultList();
}

[Buggy Hunk]
if (sortBy[i].equals("debtCount")) {

[Patch]
if ("debtCount".equals(sortBy[i])) {

[Demonstration 2]

[Buggy Method]
private Query getBasicCountQuery(SearchRequest searchRequest) {
    String queryStr = "Select count(e.id) from CertifiedProductDetailsEntity e where (NOT deleted = true)";
    if ((searchRequest.getVendor() != null) && (searchRequest.getProduct() != null)) {
        queryStr += " AND ((UPPER(vendor_name) LIKE UPPER(:vendorname)) AND (UPPER(product_name) LIKE UPPER(:productname))) ";
    } else if (searchRequest.getVendor() != null) {
        queryStr += " AND (UPPER(vendor_name) LIKE UPPER(:vendorname)) ";
    } else if (searchRequest.getProduct() != null) {
        queryStr += " AND (UPPER(product_name) LIKE UPPER(:productname)) ";
    }
    if (searchRequest.getCertificationEdition() != null) {
        queryStr += " AND (year = :certificationedition) ";
    }
    if (searchRequest.getPracticeType() != null) {
        queryStr += " AND (practice_type_name= :practicetype) ";
    }
    if (searchRequest.getProductClassification() != null) {
        queryStr += " AND (product_classification_name= :productclassification) ";
    }
    if (searchRequest.getVersion() != null) {
        queryStr += " AND (UPPER(product_version) LIKE UPPER(:version)) ";
    }
    Query query = entityManager.createQuery(queryStr, Long.class);
    if (searchRequest.getVendor() != null) {
        query.setParameter("vendorname", "%" + searchRequest.getVendor() + "%");
    }
    if (searchRequest.getProduct() != null) {
        query.setParameter("productname", "%" + searchRequest.getProduct() + "%");
    }
    if (searchRequest.getCertificationEdition() != null) {
        query.setParameter("certificationedition", searchRequest.getCertificationEdition());
    }
    if (searchRequest.getPracticeType() != null) {
        query.setParameter("practicetype", searchRequest.getPracticeType());
    }
    if (searchRequest.getProductClassification() != null) {
        query.setParameter("productclassification", searchRequest.getProductClassification());
    }
    if (searchRequest.getVersion() != null) {
        query.setParameter("version", "%" + searchRequest.getVersion() + "%");
    }
    return query;
}

[Buggy Hunk]
Query query = entityManager.createQuery(queryStr, Long.class);

[Patch]
Query query = entityManager.createQuery(queryStr);

[Demonstration 3]

[Buggy Method]
private double getSP(String path) {
    String start = path.substring(START_INDEX, END_INDEX);
    String end = path.substring(END_INDEX);
    return sp.ShortestPathfromSourceToNode(start, end);
}

[Buggy Hunk]
private double getSP (String path) {

[Patch]
private int getSP (String path) {