[Demonstration 1]

[Buggy Method]
private void watchService(String serviceClassName, boolean updateFlag) {
    if (zk == null) {
        connectZk();
    }
    if (zk == null) {
        return;
    }
    try {
        String servicePath = SERVER_ROOT_NODE_PATH + "/" + serviceClassName;
        List<String> serverAddrList = zk.getChildren(servicePath, new Watcher() {

            @Override
            public void process(WatchedEvent event) {
                if (event.getType() == Event.EventType.NodeChildrenChanged) {
                    watchService(serviceClassName, true);
                }
            }
        });
        if (updateFlag && !serverAddrList.isEmpty()) {
            logger.info(serviceClassName + " adrresses: {}", serverAddrList);
            logger.info("Service discovery triggered updating connected server node for :" + serviceClassName);
            updateClientHanderManager(serviceClassName, serverAddrList);
        }
    } catch (KeeperException | InterruptedException e) {
        logger.error(e.getMessage());
    }
}

[Buggy Hunk]
logger.error(e.getMessage());

[Patch]
logger.debug(e.getMessage());

[Demonstration 2]

[Buggy Method]
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
    try {
        if (channelUID.getId().equals("power")) {
            if (command == OnOffType.ON) {
                sendForce("power_on!");
            } else if (command == OnOffType.OFF) {
                sendForce("power_off!");
            } else if (command instanceof RefreshType) {
                sendForce("get_current_power!");
            }
        } else if (channelUID.getId().equals("mute")) {
            if (command == OnOffType.ON) {
                send("mute_on!");
            } else {
                send("mute_off!");
            }
        } else if (channelUID.getId().equals("volume")) {
            handleVolume(command);
        } else if (channelUID.getId().equals("dimmer")) {
            // Invert the scale so 100% is brightest
            if (command instanceof PercentType) {
                double value = 6 - Math.floor(((PercentType) command).doubleValue() * 6 / 100.0);
                send("dimmer_" + Integer.toString((int) value) + "!");
            }
        } else if (channelUID.getId().equals("source")) {
            if (command instanceof StringType) {
                send(command.toString() + "!");
            } else {
                send("get_current_source!");
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
        disconnect();
    }
}

[Buggy Hunk]
e.printStackTrace();

[Patch]
logger.error("An I/O error occurred while processing the command {}.", command, e);

[Demonstration 3]

[Buggy Method]
@Override
protected void processFiltered(File file, FileText fileText) {
    if (headerFormat == null) {
        headerFormat = getDefaultHeaderFormat(file);
    }
    List<String> referenceHeaderLines = getHeaderLines();
    if (referenceHeaderLines.size() > fileText.size()) {
        log(1, MSG_MISSING);
    } else {
        if (!isComment(headerFormat, fileText.get(0))) {
            log(1, MSG_MISSING);
            return;
        }
        for (int i = 0; i < referenceHeaderLines.size(); i++) {
            if (!isMatch(fileText.get(i), i)) {
                log(i + 1, MessageFormat.format(MSG_MISMATCH, headerRegexps.get(i).pattern()));
                break;
            }
        }
    }
}

[Buggy Hunk]
log(i + 1, MessageFormat.format(MSG_MISMATCH, headerRegexps.get(i).pattern()));

[Patch]
log(i + 1, MSG_MISMATCH, headerRegexps.get(i).pattern());