[Demonstration 1]

[Buggy Method]
@SuppressWarnings("unchecked")
@Override
protected BufferedDataTable[] execute(BufferedDataTable[] inData, ExecutionContext exec) throws Exception {
    final int colIndex = NodeUtils.getColumnIndex(m_column, inData[IN_TABLE_PORT_INDEX].getDataTableSpec(), m_inValueClass, this.getClass());
    BufferedDataContainer container = exec.createDataContainer(getOutSpec(inData[IN_TABLE_PORT_INDEX].getDataTableSpec()));
    List<DataRow> rowsToProcess = new ArrayList<DataRow>();
    CloseableRowIterator rowIterator = inData[IN_TABLE_PORT_INDEX].iterator();
    double progress = 0;
    while (rowIterator.hasNext()) {
        rowsToProcess.add(rowIterator.next());
        if (m_numRowsToProcess == rowsToProcess.size() || !rowIterator.hasNext()) {
            List<VIN> dataValues = new ArrayList<VIN>();
            for (DataRow row : rowsToProcess) {
                dataValues.add((VIN) row.getCell(colIndex));
            }
            List<DataCell[]> results = compute(dataValues);
            for (int rowNum = 0; rowNum < rowsToProcess.size(); rowNum++) {
                List<DataCell> newRow = new ArrayList<DataCell>();
                if (m_colCreationMode.getStringValue().equalsIgnoreCase(COL_CREATION_MODES[1])) {
                    for (int inputCellNum = 0; inputCellNum < inData[IN_TABLE_PORT_INDEX].getDataTableSpec().getNumColumns(); inputCellNum++) {
                        newRow.add(rowsToProcess.get(rowNum).getCell(inputCellNum));
                    }
                }
                for (int resultCellNum = 0; resultCellNum < results.get(rowNum).length; resultCellNum++) {
                    newRow.add(results.get(rowNum)[resultCellNum]);
                }
                container.addRowToTable(new DefaultRow(rowsToProcess.get(rowNum).getKey(), newRow.toArray(new DataCell[newRow.size()])));
            }
            rowsToProcess.clear();
        }
        ++progress;
        exec.setProgress((progress / inData[IN_TABLE_PORT_INDEX].getRowCount()));
        exec.checkCanceled();
    }
    rowIterator.close();
    container.close();
    return new BufferedDataTable[] { container.getTable() };
}

[Buggy Hunk]
for (int rowNum = 0; rowNum < rowsToProcess.size(); rowNum++) {

[Patch]
for (int rowNum = 0; rowNum < results.size(); rowNum++) {

[Demonstration 2]

[Buggy Method]
private void checkDuplicateColumns(ImmutableList<String> columnNames) {
    Set<String> columnNameSet = new HashSet<>();
    for (String columnName : columns.build()) {
        columnName = columnName.toLowerCase();
        if (columnNameSet.contains(columnName)) {
            throw new IllegalStateException("Duplicate column: " + columnName);
        }
        columnNameSet.add(columnName);
    }
}

[Buggy Hunk]
for (String columnName : columns.build()) {

[Patch]
for (String columnName : columnNames) {

[Demonstration 3]

[Buggy Method]
@RequestMapping(value = "/artist", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> searchArtist(@RequestParam("key") String key, @RequestParam("currPage") int currPage, @RequestParam("perPage") int perPage, @RequestParam MultiValueMap<String, String> allRequestParams) throws IOException {
    System.out.println(allRequestParams);
    if (key == null || key == "") {
        key = "*:*";
    }
    return MusicTagUtil.wrapResult(searchServiceImpl.searchArtist(key, currPage, perPage, allRequestParams));
}

[Buggy Hunk]
if (key == null || key == "") {

[Patch]
if (key == null || key.equals("")) {