[Demonstration 1]

[Buggy Method]
@Override
public void setValue(Object value) {
    mValue = value;
    if (mValue == null || mValue.toString().equals("false")) {
        mValue = -1;
    }
    ODataRow row = new ODataRow();
    if (isEditable()) {
        if (mWidget != null) {
            switch(mWidget) {
                case RadioGroup:
                    if (mResourceArray != -1) {
                        ((RadioButton) mRadioGroup.getChildAt(getPos())).setChecked(true);
                        row = items.get(getPos());
                    } else {
                        Integer row_id = null;
                        if (mValue instanceof OM2ORecord) {
                            row = ((OM2ORecord) mValue).browse();
                            row_id = row.getInt(OColumn.ROW_ID);
                        } else
                            row_id = (Integer) mValue;
                        int index = 0;
                        for (int i = 0; i < items.size(); i++) {
                            if (items.get(i).getInt(OColumn.ROW_ID) == row_id) {
                                index = i;
                                break;
                            }
                        }
                        row = items.get(index);
                        ((RadioButton) mRadioGroup.getChildAt(index)).setChecked(true);
                    }
                    break;
                case Searchable:
                case SearchableLive:
                case SelectionDialog:
                    if (mResourceArray != -1) {
                        row = items.get(getPos());
                    } else {
                        if (mValue instanceof OM2ORecord)
                            row = ((OM2ORecord) mValue).browse();
                        else if (mValue instanceof Integer)
                            row = getRecordData((Integer) mValue);
                    }
                    txvView.setText(row.getString(mModel.getDefaultNameColumn()));
                    if (txvView.getTag() != null) {
                        AlertDialog dialog = (AlertDialog) txvView.getTag();
                        dialog.dismiss();
                    }
                    break;
                default:
                    break;
            }
        } else {
            if (mResourceArray != -1) {
                mSpinner.setSelection(getPos());
                row = items.get(getPos());
            } else if (mCol.getType().isAssignableFrom(OSelection.class)) {
                int pos = getPos();
                mSpinner.setSelection(pos);
            } else {
                Integer row_id = null;
                if (mValue instanceof OM2ORecord) {
                    row = ((OM2ORecord) mValue).browse();
                    row_id = row.getInt(OColumn.ROW_ID);
                } else if (mValue instanceof Integer)
                    row_id = (Integer) mValue;
                int index = 0;
                for (int i = 0; i < items.size(); i++) {
                    if (items.get(i).getInt(OColumn.ROW_ID) == row_id) {
                        index = i;
                        break;
                    }
                }
                row = items.get(index);
                mSpinner.setSelection(index);
            }
        }
    } else {
        if (mResourceArray != -1 || mCol.getType().isAssignableFrom(OSelection.class)) {
            row = items.get(getPos());
        } else {
            if (mValue instanceof OM2ORecord) {
                row = ((OM2ORecord) mValue).browse();
                if (row == null) {
                    row = new ODataRow();
                }
            } else {
                if (!(mValue instanceof Boolean) && mValue != null && !mValue.toString().equals("false")) {
                    int row_id = (Integer) mValue;
                    row = getRecordData(row_id);
                } else {
                    row = new ODataRow();
                    row.put(mModel.getDefaultNameColumn(), "No " + mCol.getLabel() + " selected");
                }
            }
        }
        if (!row.getString(mModel.getDefaultNameColumn()).equals("false"))
            txvView.setText(row.getString(mModel.getDefaultNameColumn()));
    }
    if (mValueUpdateListener != null && mValue != -1) {
        mValueUpdateListener.onValueUpdate(row);
    }
}

[Buggy Hunk]
if (mValueUpdateListener != null && mValue != -1) {

[Patch]
if (mValueUpdateListener != null && !mValue.equals(-1)) {

[Demonstration 2]

[Buggy Method]
public static void forceGc(String reason) {
    EventLog.writeEvent(2741, reason);
    Runtime.getRuntime().gc();
}

[Buggy Hunk]
Runtime.getRuntime().gc();

[Patch]
VMRuntime.getRuntime().requestConcurrentGC();

[Demonstration 3]

[Buggy Method]
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException {
    gc.setTargetFrameRate(60);
    gc.setShowFPS(false);
    playerguy2 = new Player(663, 64);
    sewerMap = new TiledMap("res/sewers.tmx");
    music2 = new Music("res/Fade.ogg");
    hurt = new Music("res/ouch.ogg");
    camera = new Camera(gc, sewerMap);
    Blocked2.blocked2 = new boolean[sewerMap.getWidth()][sewerMap.getHeight()];
    for (int xAxis = 0; xAxis < sewerMap.getWidth(); xAxis++) {
        for (int yAxis = 0; yAxis < sewerMap.getHeight(); yAxis++) {
            int tileID = sewerMap.getTileId(xAxis, yAxis, 1);
            String value = sewerMap.getTileProperty(tileID, "blocked", "false");
            if ("true".equals(value)) {
                Blocked2.blocked2[xAxis][yAxis] = true;
            }
        }
    }
    Trapped.trapped = new boolean[sewerMap.getWidth()][sewerMap.getHeight()];
    for (int xAxis = 0; xAxis < sewerMap.getWidth(); xAxis++) {
        for (int yAxis = 0; yAxis < sewerMap.getHeight(); yAxis++) {
            int tileID = sewerMap.getTileId(xAxis, yAxis, 2);
            String value = sewerMap.getTileProperty(tileID, "trapped", "false");
            if ("true".equals(value)) {
                Trapped.trapped[xAxis][yAxis] = true;
            }
        }
    }
    music2.loop();
    finalstair1 = new FinalStairs(2976, 3104);
    finalstair2 = new FinalStairs(2976, 3136);
    stairs.add(finalstair1);
    stairs.add(finalstair2);
}

[Buggy Hunk]
hurt = new Music("res/ouch.ogg");

[Patch]
hurt = new Sound("res/ouch.ogg");