[Demonstration 1]

[Buggy Method]
public long unload(String msiAcc) {
    EntityManagerFactory emf = Resources.getInstance().getEntityManagerFactory();
    EntityManager em = emf.createEntityManager();
    AccessibleDAO<MSI> dao = new AccessibleDAO<MSI>(MSI.class, em);
    MSI msi = null;
    EntityTransaction ts = em.getTransaction();
    ts.begin();
    if (msiAcc != null) {
        msi = dao.find(msiAcc);
        if (msi == null) {
            log.warn("Unloading request for a non-existing submission: '" + msiAcc + "'");
            return 0;
        }
    }
    MSIUnloadingListener unloadListener = new MSIUnloadingListener(em).setDoForcedPurge(this.isDoForcedPurge()).setDoPurge(this.isDoPurge());
    long result = unloadListener.preRemoveGlobally();
    result += unloadListener.preRemove(msi);
    if (msi != null)
        result += dao.delete(msi) ? 1 : 0;
    result += unloadListener.postRemove(msi);
    result += unloadListener.postRemoveGlobally();
    ts.commit();
    // Just to be sure, we've noted some timeouts on Oracle side
    //
    if (em.isOpen())
        em.close();
    return result;
}

[Buggy Hunk]
msi = dao.find ( msiAcc );

[Patch]
msi = dao.find ( msiAcc, false, true );

[Demonstration 2]

[Buggy Method]
public final void setSubjectID(final String aid) {
    this.subjectID = aid;
}

[Buggy Hunk]
public final void setSubjectID(final String aid) {

[Patch]
public void setSubjectID(final String aid) {

[Demonstration 3]

[Buggy Method]
public List<String> getSnitchList(Player player, int offset) {
    List<String> info = new ArrayList<String>();
    try {
        String uuidString = java.util.UUID.randomUUID().toString();
        UUID accountId = player.getUniqueId();
        List<String> groups = groupMediator.getGroupsByAccount(accountId, true, true, false);
        StringBuilder sb = new StringBuilder();
        for (String group : groups) {
            sb.append(group);
            sb.append(uuidString);
        }
        getSnitchListStmt.setString(1, sb.toString());
        getSnitchListStmt.setString(2, uuidString);
        getSnitchListStmt.setInt(3, offset);
        ResultSet set = getSnitchListStmt.executeQuery();
        if (set.isBeforeFirst()) {
            while (set.next()) {
                String snitchGroupString = set.getString("SnitchGroup");
                String truncatedGroupString = ChatFiller.fillString(set.getString("SnitchGroup"), 20.0);
                if (!snitchGroupString.trim().equals(truncatedGroupString.trim())) {
                    truncatedGroupString = truncatedGroupString.substring(0, truncatedGroupString.length() - 4) + ChatColor.GRAY + "..." + ChatColor.WHITE;
                }
                info.add(ChatColor.WHITE + "  " + ChatFiller.fillString(set.getString("world"), 11.0) + ChatFiller.fillString("[" + set.getString("x") + " " + set.getString("y") + " " + set.getString("z") + "]", 31.0) + ChatFiller.fillString((((set.getInt("DoesSnitchRegisterEvents") == 1 && daysFromLastAdminVisitForLoggedSnitchCulling >= 1) || (set.getInt("DoesSnitchRegisterEvents") == 0 && daysFromLastAdminVisitForNonLoggedSnitchCulling >= 1)) ? String.format("%.2f", ((set.getInt("TimeLeftAliveInSeconds") < 0 ? 0 : set.getInt("TimeLeftAliveInSeconds")) / 3600.0)) : ""), 14.0) + truncatedGroupString);
            }
        }
    } catch (SQLException ex) {
        this.plugin.getLogger().log(Level.SEVERE, "Could not get Snitch List using playername " + player.getDisplayName(), ex);
    }
    return info;
}

[Buggy Hunk]
public List<String> getSnitchList(Player player, int offset) {

[Patch]
public synchronized List<String> getSnitchList(Player player, int offset) {