[Demonstration 1]

[Buggy Method]
public List<CraigslistPost> search(SearchCriteria searchCriteria, Date earliestDate) {
    List<CraigslistPost> newPosts = new ArrayList<>();
    List<CraigslistPost> postsFromPage;
    Document doc;
    if (Objects.nonNull(searchCriteria)) {
        int curPage = 0;
        int numNewPostsFoundOnPage = NUM_RESULTS_PER_PAGE;
        String baseUrl = getBaseUrl(searchCriteria.getCity());
        // Iterate over whole pages
        while (numNewPostsFoundOnPage == NUM_RESULTS_PER_PAGE) {
            String curUrl = createCraigslistUrl(searchCriteria, ++curPage * NUM_RESULTS_PER_PAGE);
            doc = JSoupAddOn.connect(curUrl);
            postsFromPage = parsePage(earliestDate, doc, baseUrl);
            numNewPostsFoundOnPage = postsFromPage.size();
            newPosts.addAll(postsFromPage);
        }
    }
    return newPosts;
}

[Buggy Hunk]
String curUrl = createCraigslistUrl(searchCriteria, ++curPage * NUM_RESULTS_PER_PAGE);

[Patch]
String curUrl = createCraigslistUrl(searchCriteria, curPage++ * NUM_RESULTS_PER_PAGE);

[Demonstration 2]

[Buggy Method]
@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP && drawableEnd != null) {
        bounds = drawableEnd.getBounds();
        final int x = (int) event.getX();
        //check if the touch is within bounds of drawableEnd icon
        if ((leftToRight && (x >= (this.getRight() - bounds.width()))) || (!leftToRight && (x <= (this.getLeft() + bounds.width())))) {
            togglePasswordVisibility();
            //use this to prevent the keyboard from coming up
            event.setAction(MotionEvent.ACTION_CANCEL);
        }
    }
    return super.onTouchEvent(event);
}

[Buggy Hunk]
final int x = (int) event.getX();

[Patch]
final int x = (int) event.getX() + getPaddingRight();

[Demonstration 3]

[Buggy Method]
@Override
protected void onAttach() {
    super.onAttach();
    final Element itemBody = DOM.getElementById("item_body_" + item.getId());
    if (itemBody != null) {
        itemBody.getStyle().setDisplay(Display.NONE);
    }
    //		final Element anchor = DOM.getElementById("nome_" + item.getItemValue());
    final Element spanPopup = DOM.getElementById("popup" + item.getItemValue());
    final Element span = (Element) spanPopup.getFirstChildElement();
    if (span != null) {
        Event.sinkEvents(spanPopup, Event.ONMOUSEOVER);
        Event.sinkEvents(spanPopup, Event.ONMOUSEMOVE);
        Event.setEventListener(spanPopup, new EventListener() {

            @Override
            public void onBrowserEvent(Event event) {
                final int left = event.getClientX() + 5;
                final int bottom = event.getClientY() - span.getClientHeight() - 5;
                span.getStyle().setLeft(left, Unit.PX);
                span.getStyle().setTop(bottom, Unit.PX);
            }
        });
    }
    final Element btnItem = DOM.getElementById("btnItem_" + item.getId());
    if (btnItem != null) {
        if (item.getContent() == null) {
            btnItem.getStyle().setDisplay(Display.NONE);
        }
        Event.sinkEvents(btnItem, Event.ONCLICK);
        Event.setEventListener(btnItem, new EventListener() {

            @Override
            public void onBrowserEvent(Event event) {
                if (opened) {
                    btnItem.setClassName("dados");
                    itemBody.getStyle().setDisplay(Display.NONE);
                } else {
                    btnItem.setClassName("dados_abertos");
                    itemBody.getStyle().setDisplay(Display.BLOCK);
                }
                opened = !opened;
            }
        });
    }
    final Element btnHelp = DOM.getElementById("ajuda_" + item.getId());
    if (btnHelp != null) {
        Event.sinkEvents(btnHelp, Event.ONCLICK);
        Event.setEventListener(btnHelp, new EventListener() {

            @Override
            public void onBrowserEvent(Event event) {
                PopupPanel helpPanel = new PopupPanel();
                HTML html = new HTML(item.getInfoSource());
                ScrollPanel scPanel = new ScrollPanel(html);
                helpPanel.add(scPanel);
                helpPanel.setWidth("275px");
                helpPanel.setHeight("200px");
                helpPanel.setAutoHideEnabled(true);
                helpPanel.setPopupPosition(btnHelp.getAbsoluteLeft() + btnHelp.getOffsetWidth(), btnHelp.getAbsoluteTop() - 200);
                DOM.setIntStyleAttribute(helpPanel.getElement(), "zIndex", 110);
                DOM.setStyleAttribute(helpPanel.getElement(), "background", "black");
                DOM.setStyleAttribute(helpPanel.getElement(), "color", "white");
                DOM.setStyleAttribute(helpPanel.getElement(), "padding", "5px");
                helpPanel.show();
            }
        });
    }
}

[Buggy Hunk]
final Element spanPopup = DOM.getElementById("popup"+item.getItemValue());

[Patch]
final Element spanPopup = DOM.getElementById("popup"+item.getId());