[Demonstration 1]

[Buggy Method]
@Override
public int hashCode() {
    return email.hashCode();
}

[Buggy Hunk]
return email.hashCode();

[Patch]
return Objects.hashCode(email);

[Demonstration 2]

[Buggy Method]
private void invoke(File rootPath, String tokenOrigin) throws Exception {
    File[] csvFiles = rootPath.listFiles(new FilenameFilter() {

        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return name.endsWith(".csv");
        }
    });
    for (File csv : csvFiles) {
        TargetCleaner.main(new String[] { csv.getAbsolutePath(), csv.getAbsolutePath() + ".in", tokenOrigin });
    }
    File[] inFiles = rootPath.listFiles(new FilenameFilter() {

        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return name.endsWith(".in");
        }
    });
    for (File in : inFiles) {
        HorseRaceAnalyzer.main(new String[] { in.getAbsolutePath(), in.getAbsolutePath() + ".out", "-1" });
    }
    File[] outFiles = rootPath.listFiles(new FilenameFilter() {

        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return name.endsWith(".out");
        }
    });
    for (File out : outFiles) {
        HorseRaceAnalyzer2.main(new String[] { out.getAbsolutePath() });
    }
}

[Buggy Hunk]
return name.endsWith(".csv");

[Patch]
return name.endsWith(".csv") && !name.endsWith("r.csv");

[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"));