[Demonstration 1]

[Buggy Method]
public Mesh createMesh(float[] pVertices, float[] pTextCoords, float[] pNormals, int[] pIndices, int pWeight, float[] rgb, String pTextureName) {
    if (rgb.length != 3) {
        throw new RuntimeException("RGB must represent 3 colors");
    }
    Vector3f lMaterialColor = new Vector3f(rgb[0], rgb[1], rgb[2]);
    Material lMaterial = mNucleus.createMaterial(lMaterialColor);
    //Texture part
    if (!pTextureName.isEmpty()) {
        Texture lTexture = mStringTextureConcurrentHashMap.get(pTextureName);
        if (lTexture == null) {
            lTexture = mNucleus.createTexture(pTextureName);
        }
        lMaterial.setTexture(lTexture);
    }
    Mesh lMesh = mNucleus.createMesh(pVertices, pTextCoords, pNormals, pIndices, pWeight);
    lMesh.setMaterial(lMaterial);
    return lMesh;
}

[Buggy Hunk]
if (!pTextureName.isEmpty()) {

[Patch]
if (pTextureName != null && !pTextureName.isEmpty()) {

[Demonstration 2]

[Buggy Method]
@Override
public void paintControl(PaintEvent e) {
    if (clientArea != getClientArea()) {
        clientArea = getClientArea();
        reloadScrollBarsBaseData();
    }
    Image image = new Image(e.display, getClientArea().width, getClientArea().height);
    GC gcImage = new GC(image);
    gcImage.setAntialias(SWT.ON);
    // draw piano-roll background
    for (int i = 0; i < getMidiNoteUpperLimit() - getMidiNoteLowerLimit() + 1; i++) {
        int numMidiNote = getMidiNoteUpperLimit() - i;
        gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_GRAY));
        if (MusicalScales.getMusicalScalesFromNumMidiNote(numMidiNote).isMajor()) {
            gcImage.setBackground(e.display.getSystemColor(SWT.COLOR_GRAY));
            gcImage.fillRectangle(new Rectangle(offset.x, i * noteHeight + offset.y, viewSize.x, noteHeight));
        }
        gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_GRAY));
        gcImage.drawLine(offset.x, (i + 1) * noteHeight + offset.y, viewSize.x + offset.x, (i + 1) * noteHeight + offset.y);
    }
    if (clientArea.width > viewSize.x) {
        gcImage.setBackground(e.display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
        gcImage.fillRectangle(new Rectangle(viewSize.x, 0, clientArea.width - viewSize.x, clientArea.height));
    }
    // draw notes
    for (Note tmpNote : coreData.getNotes()) {
        if (tmpNote.getBasePitch() < getMidiNoteUpperLimit() && tmpNote.getBasePitch() > getMidiNoteLowerLimit()) {
            Point tmpPoint = new Point((int) (margin + (tmpNote.getStart() / msByPixel)) + offset.x, (getMidiNoteUpperLimit() - tmpNote.getBasePitch()) * noteHeight + offset.y);
            Rectangle tmpRectangle = new Rectangle(tmpPoint.x, tmpPoint.y, (int) (tmpNote.getLength() / msByPixel), noteHeight);
            if (displayMode == MainWindowDisplayMode.PITCHES) {
                Rectangle rectPadding = new Rectangle(tmpRectangle.x - (int) (tmpNote.getFrontPadding() / msByPixel), tmpRectangle.y, tmpRectangle.width + (int) ((tmpNote.getFrontPadding() - tmpNote.getBackPadding()) / msByPixel), tmpRectangle.height);
                gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_YELLOW));
                gcImage.drawRectangle(rectPadding);
                gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_MAGENTA));
                gcImage.drawRectangle(tmpRectangle);
                gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
                gcImage.drawText(tmpNote.getPronunciationAliasString(), tmpPoint.x + 3, tmpPoint.y + 3, true);
            } else {
                gcImage.setBackground(e.display.getSystemColor(SWT.COLOR_DARK_MAGENTA));
                gcImage.fillRectangle(tmpRectangle);
                gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
                gcImage.drawRectangle(tmpRectangle);
                gcImage.drawText(tmpNote.getPronunciationAliasString(), tmpPoint.x + 3, tmpPoint.y + 3, true);
            }
        }
    }
    // draw pitches
    if (displayMode == MainWindowDisplayMode.PITCHES) {
        // saved pitches
        gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_CYAN));
        double[] midiNoteNumbers = new double[coreData.getPitches().size()];
        midiNoteNumbers = coreData.getPitches().getMidiNoteNumbers();
        int[] tmpPitchPositions = new int[(int) (midiNoteNumbers.length / msByPixel) * 2 + 2];
        tmpPitchPositions[0] = 0;
        tmpPitchPositions[1] = viewSize.y;
        for (int i = 0; i < tmpPitchPositions.length / 2 - 1; i++) {
            tmpPitchPositions[(i + 1) * 2] = (int) (i + offset.x);
            double tmpPitch = midiNoteNumbers[(int) (i * msByPixel)];
            tmpPitchPositions[(i + 1) * 2 + 1] = (tmpPitch > getMidiNoteLowerLimit() && tmpPitch < getMidiNoteUpperLimit()) ? midiNoteNumber2pos(tmpPitch) : viewSize.y;
        }
        gcImage.drawPolyline(tmpPitchPositions);
        // temporary pitches
        gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_CYAN));
        int[] tmpCursorLocus = new int[cursorLocus.size() * 2];
        int i = 0;
        for (Entry<Integer, Integer> entry : cursorLocus.entrySet()) {
            tmpCursorLocus[i] = entry.getKey();
            tmpCursorLocus[i + 1] = entry.getValue();
            i += 2;
        }
        gcImage.drawPolyline(tmpCursorLocus);
    }
    // draw seekbar
    gcImage.setForeground(e.display.getSystemColor(SWT.COLOR_MAGENTA));
    if (coreData.getSongWaveform() != null && coreData.getSongWaveform().isLoaded()) {
        int tmpSeekPoint = (int) (coreData.getSongWaveform().getMicrosecond() / 1000 / msByPixel + offset.x);
        gcImage.drawLine(tmpSeekPoint, 0, tmpSeekPoint, viewSize.y);
    }
    e.gc.drawImage(image, 0, 0);
    gcImage.dispose();
    image.dispose();
}

[Buggy Hunk]
if (displayMode == MainWindowDisplayMode.PITCHES) {

[Patch]
if (displayMode==MainWindowDisplayMode.PITCHES && coreData.getPitches()!=null && coreData.getPitches().size()>0) {

[Demonstration 3]

[Buggy Method]
private void changed(CTEvent e) {
    o.modified();
    this.storedobject = null;
    updateResourceUsage();
    listeners.stream().forEach((l) -> l.event(e));
}

[Buggy Hunk]
listeners.stream().forEach((l) -> l.event(e));

[Patch]
listeners.stream().forEach(l -> l.event(e));