[Demonstration 1]

[Buggy Method]
public boolean hasActiveTasks(User entity) {
    Query query = em.createQuery("SELECT B FROM Bug b where b.assignedTo= :entity");
    query.setParameter("entity", entity);
    List<Bug> bugList = query.getResultList();
    for (int i = 0; i < bugList.size(); i++) {
        if (!(bugList.get(i).getStatus() == BugStatus.CLOSED)) {
            return true;
        }
    }
    return false;
}

[Buggy Hunk]
if (!(bugList.get(i).getStatus() == BugStatus.CLOSED)) {

[Patch]
if (!(bugList.get(i).getStatus() == BugStatusType.CLOSED)) {

[Demonstration 2]

[Buggy Method]
private void displayNotification(ExecutionResult result) {
    String message = Message.WELCOME.toString();
    if (this._lastCommand != null) {
        switch(this._lastCommand.getInstruction()) {
            case DISPLAY:
                int taskCount = ((List<?>) result.getData()).size();
                if (taskCount == 0) {
                    message = Message.DISPLAY_EMPTY.toString();
                } else {
                    message = String.format(Message.DISPLAY_NORMAL.toString(), taskCount);
                }
                break;
            case ADD:
                String taskName = this._lastCommand.getParameter(Command.ParamName.TASK_NAME);
                message = String.format(Message.ADD_SUCCESS.toString(), taskName);
                break;
            case EDIT:
                message = Message.EDIT_SUCCESS.toString();
                break;
            case DELETE:
                if (result.hasErrorMessage()) {
                    message = result.getErrorMessage();
                } else if (this._lastCommand.hasTrueValue(Command.ParamName.TASK_UNIVERSALLY_QUANTIFIED)) {
                    message = Message.DELETE_ALL_SUCCESS.toString();
                } else {
                    message = Message.DELETE_SUCCESS.toString();
                }
                break;
            case SEARCH:
                int searchFound = ((List<?>) result.getData()).size();
                String searchQuery = this._lastCommand.getParameter(Command.ParamName.SEARCH_QUERY);
                if (searchFound == 0) {
                    message = String.format(Message.SEARCH_FAIL.toString(), searchQuery);
                } else {
                    message = String.format(Message.SEARCH_SUCCESS.toString(), searchFound, searchQuery);
                }
                break;
            case UNDO:
                if (result.hasErrorMessage()) {
                    message = result.getErrorMessage();
                } else {
                    message = Message.UNDO_SUCCESS.toString();
                }
                break;
            case REDO:
                if (result.hasErrorMessage()) {
                    message = result.getErrorMessage();
                } else {
                    message = Message.REDO_SUCCESS.toString();
                }
                break;
            case MARK:
                if (result.hasErrorMessage()) {
                    message = result.getErrorMessage();
                } else if (this._lastCommand.hasTrueValue(Command.ParamName.TASK_UNIVERSALLY_QUANTIFIED)) {
                    message = Message.MARK_ALL_SUCCESS.toString();
                } else {
                    message = Message.REDO_SUCCESS.toString();
                }
        }
    }
    this.getUserInterface().showNotification(message);
}

[Buggy Hunk]
message = Message.REDO_SUCCESS.toString();

[Patch]
message = Message.MARK_SUCCESS.toString();

[Demonstration 3]

[Buggy Method]
@Override
public ArrayList<Image> parseImages(String propertyUrl) {
    ArrayList<Image> images = new ArrayList<>();
    Document doc = null;
    try {
        doc = Jsoup.connect(propertyUrl).get();
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (doc == null) {
        return null;
    }
    Elements domstorPhoto = doc.getElementsByClass("domstor_photo");
    if (domstorPhoto.isEmpty()) {
        return null;
    }
    List<String> imagesUrl = new ArrayList<>();
    Elements imagesElements = domstorPhoto.get(0).select("a");
    imagesElements.forEach(imageEl -> {
        String url = imageEl.select("img").first().attr("src");
        if (url.length() > 0) {
            imagesUrl.add(url);
        }
    });
    System.out.println("Images: " + imagesUrl);
    imagesUrl.forEach(imageUrl -> {
        String[] urlData = imageUrl.split("/");
        String fileOutName = urlData[urlData.length - 1];
        Image image = new Image();
        String[] splData = fileOutName.split("\\.");
        String fileName = splData[0];
        String type = "." + splData[1].toLowerCase();
        int ordering = imagesUrl.indexOf(imageUrl) + 1;
        image.setFileName(fileName);
        image.setFileType(type);
        image.setOrdering(ordering);
        image.setImageUrl(imageUrl);
        images.add(image);
    });
    return images;
}

[Buggy Hunk]
doc = Jsoup.connect(propertyUrl).get();

[Patch]
doc = Jsoup.connect(propertyUrl).timeout(10*1000).get();