[Demonstration 1]

[Buggy Method]
private void capture() {
    Log.message("Starting audio capture");
    AudioFormat format = new AudioFormat(44100, 16, 1, true, false);
    DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
    TargetDataLine line;
    try {
        line = (TargetDataLine) AudioSystem.getLine(info);
        line.open(format);
        line.start();
        //für eine Sekunde: int bufferSize = (int) format.getSampleRate() * format.getFrameSize();
        int bufferSize = 2048;
        byte[] byteBuffer = new byte[bufferSize];
        while (!thread.isInterrupted()) {
            int count = line.read(byteBuffer, 0, byteBuffer.length);
            if (count > 0) {
                ShortBuffer shortBuff = ByteBuffer.wrap(byteBuffer, 0, count).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer();
                short[] shortBuffer = new short[bufferSize / 2];
                for (int i = 0; shortBuff.hasRemaining(); i++) {
                    shortBuffer[i] = shortBuff.get();
                }
                analyzer.pushSamples(shortBuffer);
            }
        }
    } catch (Exception e) {
        Log.error(e);
    }
}

[Buggy Hunk]
while (!thread.isInterrupted()) {

[Patch]
while (!thread.isInterrupted() && shouldRun) {

[Demonstration 2]

[Buggy Method]
@SuppressWarnings("unchecked")
protected void tryAddNewEventSetProcessor(Event event) {
    String name = getDefinition().getName();
    try {
        T adapter = createNewEventSetProcessorAdapter();
        EventSetProcessor eventSetProcessor = getKnowledgeBase().getEngineOperations().getEngine().getProcessorManager().createProcessorInstance(getDefinition(), EventSetProcessor.class);
        adapter.setProcessor(eventSetProcessor);
        adapter.setGroup(this);
        // Invoke init callback on the event set processor instance.
        adapter.getProcessor().onInit();
        if (!adapter.acceptAsFirst(event)) {
            return;
        }
        eventSetProcessorAdapters.add(adapter);
        handler.addDuration(adapter);
        logger.debug("{} - Adding new, hash: {}", adapter.getName(), adapter.hashCode());
    } catch (Exception e) {
        throw Utils.wrapException(name, e);
    }
}

[Buggy Hunk]
logger.debug("{} - Adding new, hash: {}", adapter.getName(), adapter.hashCode());

[Patch]
logger.debug("{} - New instance, hash: {}, event: {}", adapter.getName(), adapter.hashCode(), event);

[Demonstration 3]

[Buggy Method]
private String minUpdateInterval(String interval1, String interval2) {
    LOG.warn("interval1: {}, interval2: {}", interval1, interval2);
    if (interval1 == null) {
        return interval2;
    } else if (interval2 == null) {
        return interval1;
    }
    int interval1InMin = getIntervalInMinutes(interval1);
    int interval2InMin = getIntervalInMinutes(interval2);
    if (interval1InMin <= interval2InMin) {
        return getUpdatePolicyInterval(interval1InMin);
    } else {
        return getUpdatePolicyInterval(interval2InMin);
    }
}

[Buggy Hunk]
LOG.warn("interval1: {}, interval2: {}", interval1, interval2);

[Patch]
LOG.debug("interval1: {}, interval2: {}", interval1, interval2);