[Demonstration 1]

[Buggy Method]
private void update() {
    inputCount = inputVars.size();
    outputCount = outputVars.size();
    inputMF = 0;
    outputMF = 0;
    // Count input and output variable membership functions
    if (functionMap.size() > 0) {
        for (Map.Entry<T1MF_Prototype, Object> entry : functionMap.entrySet()) {
            if (entry.getValue().getClass().getSimpleName().toString().equals("Input")) {
                inputMF++;
            } else {
                outputMF++;
            }
        }
    }
    // If no variables present, disable all options
    if (inputCount < 1 || outputCount < 1) {
        mntmExportCode.setEnabled(false);
        mntmExportEclipseProject.setEnabled(false);
        btnAddMf.setEnabled(false);
        btnAddRule.setEnabled(false);
    }
    // If variables are present, enable adding membership functions
    if (inputCount > 0 || outputCount > 0) {
        btnAddMf.setEnabled(true);
    }
    // If at least one input and one output variable membership function present,
    // enable adding rules
    if (inputMF > 0 && outputMF > 0) {
        btnAddRule.setEnabled(true);
    }
    // If rules are present enable exporting options
    if (ruleMap.size() > 0) {
        mntmExportCode.setEnabled(true);
        mntmExportEclipseProject.setEnabled(true);
    }
}

[Buggy Hunk]
if (ruleMap.size() > 0 ) {

[Patch]
if (rules.size() > 0 ) {

[Demonstration 2]

[Buggy Method]
public static String bytesToString(long bytes) {
    double bytesDouble = bytes;
    int div = 2 << 30;
    int index = 0;
    String postfix = bytes + "bytes";
    while (index <= MODS.length) {
        double divided = bytesDouble / div;
        if (divided > 2) {
            String mod = MODS[index];
            return format.get().format(divided) + mod + " " + postfix;
        }
        div >>= 10;
        index++;
    }
    return postfix;
}

[Buggy Hunk]
int div = 2 << 30;

[Patch]
long div = 2L << 30;

[Demonstration 3]

[Buggy Method]
private void addModeButtonHandler() {
    addMode.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            try {
                if (modeName.getSelectionModel().isEmpty()) {
                    Alert alert = new Alert(AlertType.ERROR, "Please enter a mode name.", ButtonType.OK);
                    alert.showAndWait();
                } else {
                    if (modes.getModes().isEmpty()) {
                        startMode.setSelected(true);
                    }
                    if (modes.getModes().containsKey(modeName.getSelectionModel().getSelectedItem().toString())) {
                        //System.out.println(flaggerMap.getFlagMapping().get(flaggerName.getSelectionModel().getSelectedItem().toString()).getTrueCondition());
                        modes.remove(modeName.getSelectionModel().getSelectedItem().toString());
                    }
                    if (checkModes() == true) {
                        RadioButton selectedRadioButton1 = (RadioButton) motorGroup1.getSelectedToggle();
                        String toogleGroupValue1 = selectedRadioButton1.getText();
                        RadioButton selectedRadioButton2 = (RadioButton) motorGroup2.getSelectedToggle();
                        String toogleGroupValue2 = selectedRadioButton2.getText();
                        //System.out.println(toogleGroupValue2);
                        //RadioButton selectedRadioButton3 = (RadioButton) startingMode.getSelectedToggle();
                        //String toogleGroupValue3 = selectedRadioButton3.getText();
                        String isStart = "";
                        if (startMode.isSelected()) {
                            isStart = "Starting Mode";
                        }
                        modes.add(modeName.getSelectionModel().getSelectedItem().toString().toUpperCase(), motor1.getSelectionModel().getSelectedItem().toString(), toogleGroupValue1, motor2.getSelectionModel().getSelectedItem().toString(), toogleGroupValue2, isStart, (int) modeTableNumber.getValue());
                        previewCode();
                        clearAllMode();
                        populateModeTransition();
                        populateModeNameSelector();
                    }
                }
            } catch (NumberFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
}

[Buggy Hunk]
if(modeName.getSelectionModel().isEmpty()){

[Patch]
if(modeName.getSelectionModel().getSelectedItem().equals("Mode Name")){