[Demonstration 1]

[Buggy Method]
private void choice4() {
    String number = prompt("Enter Admission Number: ", Integer.class);
    String query = " SELECT admissionID FROM Admissions WHERE admissionID = " + number;
    ResultSet rs = makeStatement(query);
    try {
        if (!rs.next()) {
            System.out.println("That admission does not exist.");
            return;
        }
        rs.close();
    } catch (SQLException e) {
        System.out.println("Error verifying admission.\n");
        e.printStackTrace();
        return;
    }
    String payment = prompt("Enter the new total payment: ", Integer.class);
    query = " UPDATE Admissions SET totalPayment = " + payment + " WHERE admissionID =" + number;
    try {
        Statement st = connection.createStatement();
        st.executeUpdate(query);
        rs.close();
        st.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
String payment = prompt("Enter the new total payment: ", Integer.class);

[Patch]
String payment = prompt("Enter the new total payment: ", Double.class);

[Demonstration 2]

[Buggy Method]
public <T> ProtectedRequest<T> makeRequest(int method, String path, ResponseListener<T> listener) {
    return new ProtectedRequest<>(method, path, this.token_, listener);
}

[Buggy Hunk]
return new ProtectedRequest<> (method, path, this.token_, listener);

[Patch]
return new ProtectedRequest<> (method, path, this.userToken_, listener);

[Demonstration 3]

[Buggy Method]
public void parseURLParams(Screen s) {
    JSONObject startupParameters = new JSONObject();
    boolean search = false;
    if (s.getParameter("query") != null) {
        search = true;
        String query = (String) s.getParameter("query");
        s.setProperty("searchQuery", query);
        if (s.getProperty("mobile") != null) {
            s.putMsg("mobilesearchinput", "", "setQuery(" + query + ")");
        } else {
            s.putMsg("searchinput", "", "setQuery(" + query + ")");
        }
        startupParameters.put("query", query);
    }
    if (s.getParameter("sortField") != null) {
        String sortField = (String) s.getParameter("sortField");
        s.setProperty("sortField", sortField);
        startupParameters.put("sortField", sortField);
        String body = "<span class='colorgray'>SORT BY</span> " + FieldMappings.getInterfaceFieldName(sortField) + " <span class='caret'></span>";
        setContentOnScope(s, "sortHeader", body);
    }
    if (s.getParameter("sortDirection") != null) {
        String sortDirection = (String) s.getParameter("sortDirection");
        s.setProperty("sortDirection", (String) s.getParameter("sortDirection"));
        startupParameters.put("sortDirection", sortDirection);
    }
    if (s.getParameter("activeType") != null) {
        String activeType = (String) s.getParameter("activeType");
        s.setProperty("activeType", activeType);
        if (s.getProperty("mobile") == null)
            s.putMsg("tabs", "", "loadTab(" + activeType + ")");
        startupParameters.put("activeType", activeType);
    }
    if (s.getParameter("activeFields") != null) {
        search = true;
        try {
            String encodedString = (String) s.getParameter("activeFields");
            startupParameters.put("activeFields", encodedString);
            String activeFields = org.springfield.fs.FsEncoding.decode(java.net.URLDecoder.decode(encodedString, "UTF-8"));
            this.setClientSelectedField(s, activeFields, false);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    s.putMsg("history", "", "setStartupParameters(" + startupParameters + ")");
    if (search)
        this.search(s);
}

[Buggy Hunk]
String query = (String) s.getParameter("query");

[Patch]
String query = FsEncoding.decode((String) s.getParameter("query"));