[Demonstration 1]

[Buggy Method]
@Test
public void test() {
    Session session = HttpExchangeHelper.getSession(httpExchange);
    assertNotNull(session);
    SessionHelper.invalidateSession(session);
    assertTrue(session.equals(HttpExchangeHelper.getSession(httpExchange)));
    assertFalse(HttpExchangeHelper.isAuthenticated(httpExchange));
    assertTrue(!SessionHelper.isSessionTimedOut(session));
    session.setLastUsed(timeout * 2);
    assertTrue(!SessionHelper.isSessionTimedOut(session));
}

[Buggy Hunk]
assertTrue(session.equals(HttpExchangeHelper.getSession(httpExchange)));

[Patch]
assertFalse(session.equals(HttpExchangeHelper.getSession(httpExchange)));

[Demonstration 2]

[Buggy Method]
public static Track rateinuserlibrarynorenderWithCatalogSearch(Long trackid, User user, Long rate) {
    if (trackid == null) {
        return null;
    }
    Track track = Track.findById(trackid);
    if (rate == null) {
        Logger.error("Catalog.rateinuserlibrarynorender() got null rating");
        return null;
    }
    LibraryItem litem;
    if (track.soundcloud_id != null) {
        litem = user.library.findInLibrarybySoundcloudId(user, track);
        //            if (litem == null) {
        //                //Logger.info("Creating new library item");
        //                litem = new LibraryItem(user, track, user.library, );
        //                litem.rating = rate;
        //                litem.save();
        //                //Logger.info("Created new sound cloud library item" + litem.id);
        //                user.library.libraryItems.add(litem);
        //            }
    } else {
        litem = user.library.findInLibrarybyRadioIDOrFullMatch(user, track);
        //            if (litem == null) {
        //                //Logger.info("Creating new library item");
        //                litem = new LibraryItem(user, track, user.library);
        //                litem.rating = rate;
        //                litem.save();
        //                //Logger.info("Created new library item" + litem.id);
        //                user.library.libraryItems.add(litem);
        //
        //            }
    }
    if (litem == null) {
        Logger.error("Could not find a library item in users library or in catalog.");
        return track;
    }
    litem = findUsersLibraryItem(user, track, rate, false);
    long oldrating = litem.rating;
    //Logger.info(user.firstName + " rated " + track.title + " a rating of " + rate + ".", user.room);
    if (oldrating == rate) {
        return track;
    }
    litem.rating = rate;
    litem.save();
    //user.library.save();
    // If track is currently playing give player tokens (or subtrack);
    if (oldrating == -1) {
        oldrating = 40;
    }
    if (user.room != null && !user.room.getUsersInRoom().isEmpty() && user.room.currentPlayingLibrary != null && track.id.equals(user.room.currentPlayingLibrary.track.id)) {
        if (rate > 0) {
            ChatRoom.get().rated(user.room.name, user.firstName + " rated " + track.title + " a rating of " + Room.ratingAdjective(rate) + ".", user.room, litem);
        }
        if (user.facebookId != user.room.currentPlayingLibrary.user.facebookId && litem.user.id.equals(user.room.currentPlayingLibrary.user.id)) {
            User roomUser = user.room.currentPlayingLibrary.user;
            long newTokens = LibraryItem.getStars(litem.rating) - LibraryItem.getStars(oldrating);
            if (newTokens > 0) {
                ChatRoom.get().roomSay(user.room.name, roomUser.firstName + " received " + newTokens + " tokens.", user.room);
            } else {
                ChatRoom.get().roomSay(user.room.name, roomUser.firstName + " lost " + Math.abs(newTokens) + " tokens.", user.room);
            }
            roomUser.tokens = roomUser.tokens + newTokens;
            roomUser.save();
        }
    }
    return track;
}

[Buggy Hunk]
if (user.facebookId != user.room.currentPlayingLibrary.user.facebookId && litem.user.id.equals(user.room.currentPlayingLibrary.user.id)) {

[Patch]
if (user.id != user.room.currentPlayingLibrary.user.id && litem.user.id.equals(user.room.currentPlayingLibrary.user.id)) {

[Demonstration 3]

[Buggy Method]
public void removeEndDate() {
    this.startDate = Optional.empty();
}

[Buggy Hunk]
this.startDate = Optional.empty();

[Patch]
this.endDate = Optional.empty();