[Demonstration 1]

[Buggy Method]
public File insert_doi_pdf(File f, String doi) {
    try {
        File compressed = null;
        String filename = f.getPath().toString();
        int last_index = -1;
        last_index = filename.lastIndexOf("/");
        if (last_index == -1) {
            last_index = filename.lastIndexOf("\\");
        }
        filename = filename.substring(last_index + 1);
        File file_directory = new File(String.format("%s/required_files/pdf/", directory));
        file_directory.mkdirs();
        PdfReader reader = new PdfReader(new FileInputStream(f));
        com.itextpdf.text.Document document = new com.itextpdf.text.Document();
        // com.itextpdf.text.Document document = new
        // com.itextpdf.text.Document(f);
        PdfCopy copy = new PdfCopy(document, new FileOutputStream(String.format("%s/required_files/pdf/%s", directory, filename)));
        document.open();
        PdfCopy.PageStamp stamp;
        PdfImportedPage page;
        int total = reader.getNumberOfPages();
        if (total == 1) {
            page = copy.getImportedPage(reader, 1);
            stamp = copy.createPageStamp(page);
            ColumnText.showTextAligned(stamp.getUnderContent(), Element.ALIGN_CENTER, new Phrase(String.format("%s", doi)), 297.5f, 28, 0);
            stamp.alterContents();
            copy.addPage(page);
        } else {
            for (int i = 1; i < total; ) {
                page = copy.getImportedPage(reader, ++i);
                stamp = copy.createPageStamp(page);
                ColumnText.showTextAligned(stamp.getUnderContent(), Element.ALIGN_CENTER, new Phrase(String.format("%s", doi)), 297.5f, 28, 0);
                stamp.alterContents();
                copy.addPage(page);
            }
        }
        document.close();
        reader.close();
        if (list_settings.containsKey("Optimize PDFs") && Boolean.parseBoolean(list_settings.get("Optimize PDFs"))) {
            copy.setFullCompression();
        }
        copy.close();
        compressed = new File(String.format(String.format("%s/required_files/%s", directory, "pdf/%s", filename)));
        return compressed;
    } catch (IOException e) {
        return f;
    } catch (DocumentException es) {
        return f;
    }
}

[Buggy Hunk]
compressed = new File(String.format(String.format("%s/required_files/%s", directory, "pdf/%s", filename)));

[Patch]
compressed = new File(String.format(String.format("%s/required_files/pdf/%s", directory, filename)));

[Demonstration 2]

[Buggy Method]
@Override
public String saveImage(Part part, String directory, long userId) {
    String webappRoot = File.separator + "opt" + File.separator + "tomcat" + File.separator + "webapps";
    String defaultIcon = File.separator + "shopImageData" + File.separator + directory + File.separator + "noimage.gif";
    String fileName = getFileName(part);
    if (fileName != null) {
        String filePath = File.separator + "shopImageData" + File.separator + directory + File.separator + userId;
        try (InputStream input = part.getInputStream()) {
            File path = new File(webappRoot + filePath);
            path.mkdirs();
            File image = new File(path, fileName);
            Files.copy(input, image.toPath());
        } catch (IOException e) {
            return defaultIcon;
        }
        return filePath + File.separator + fileName;
    }
    return defaultIcon;
}

[Buggy Hunk]
Files.copy(input, image.toPath());

[Patch]
Files.copy(input, image.toPath(),StandardCopyOption.REPLACE_EXISTING);

[Demonstration 3]

[Buggy Method]
@Override
public String extractData(String rawData) {
    return rawData.substring(13);
}

[Buggy Hunk]
return rawData.substring(13);

[Patch]
return rawData.substring(13).replace(System.getProperty("line.separator"), "");