[Demonstration 1]

[Buggy Method]
public boolean isOpened() throws IllegalStateException {
    //get key based on current day
    int key = getKey();
    OpeningHours openingHours = this.openingHours.get(key);
    if (openingHours != null) {
        if (openingHours.isOpenedAllDay()) {
            return true;
        } else if (openingHours.isClosedAllDay()) {
            return false;
        }
    }
    if (!isInformationAboutOpeningHoursAvailable(openingHours)) {
        throw new IllegalStateException("Information not available");
    }
    if (isBetweenTwoLocalTimes(openingHours)) {
        return true;
    } else {
        return false;
    }
}

[Buggy Hunk]
if (!isInformationAboutOpeningHoursAvailable(openingHours)) {

[Patch]
if (openingHours == null) {

[Demonstration 2]

[Buggy Method]
private void extractDate(Matcher m) {
    boolean isNew;
    LocalDate date;
    int i = 0, index = -1, k = 0;
    try {
        while (m.find(k)) {
            if (dateIndex.size() != 0) {
                index = dateIndex.get(0);
            }
            String dt = m.group();
            dt = dt.trim().replaceAll("[\\s/\\-\\.]", " ");
            log.info(dt);
            i = m.start();
            isNew = checkDateIndex(i);
            if (isNew) {
                if (i == 0 || _input.charAt(i - 1) != '\"') {
                    date = TimeExtractor.extractDate(dt);
                } else {
                    date = null;
                }
                if (date != null) {
                    if (index < 0 || i < index) {
                        dateList.add(0, date);
                        dateIndex.add(0, i);
                    } else {
                        dateList.add(date);
                        dateIndex.add(i);
                    }
                    if (i > 0) {
                        checkTimeIndicationWord(i, false);
                    }
                    i = m.end() - 1;
                    log.info(date.toString());
                }
            }
            k = _input.indexOf(" ", i + 1);
        }
    } catch (Exception e) {
        return;
    }
}

[Buggy Hunk]
if (i == 0 || _input.charAt(i - 1) != '\"') {

[Patch]
if (i == 0 || _input.charAt(i - 1) == ' ') {

[Demonstration 3]

[Buggy Method]
@Override
public void registerObserver(ObserverOfGuiSendingTargetCoord o) {
    observers.add(o);
}

[Buggy Hunk]
observers.add(o);

[Patch]
observersOfSendingTarget.add(o);