[Demonstration 1]

[Buggy Method]
@Override
public Optional<FileObject<T>> open(String fileName) {
    try (FileReader jsonFile = new FileReader(fileName)) {
        T obj = gson.fromJson(jsonFile, typeParameterClass);
        return Optional.of(new FileObject<T>(obj, fileName));
    } catch (IOException e) {
        return Optional.empty();
    }
}

[Buggy Hunk]
try (FileReader jsonFile = new FileReader(fileName)) {

[Patch]
try (FileReader jsonFile = new FileReader(FileObject.getFileRoot() + "/" + fileName)) {

[Demonstration 2]

[Buggy Method]
public static String savePublicKey(PublicKey key) {
    try {
        KeyFactory keyFactory = SAMLUtils.getKeyFactory();
        if (keyFactory == null)
            return null;
        X509EncodedKeySpec spec = keyFactory.getKeySpec(key, X509EncodedKeySpec.class);
        return new String(org.bouncycastle.util.encoders.Base64.encode(spec.getEncoded()));
    } catch (InvalidKeySpecException e) {
        s_logger.error("Unable to create KeyFactory:" + e.getMessage());
    }
    return null;
}

[Buggy Hunk]
return new String(org.bouncycastle.util.encoders.Base64.encode(spec.getEncoded()));

[Patch]
return new String(org.bouncycastle.util.encoders.Base64.encode(spec.getEncoded()), Charset.forName("UTF-8"));

[Demonstration 3]

[Buggy Method]
public static Cache fromFile(String cacheId, String filename) throws IOException {
    FileReader fr = new FileReader(filename);
    StringBuffer cacheContents = new StringBuffer();
    BufferedReader br = new BufferedReader(fr);
    String line;
    while ((line = br.readLine()) != null) {
        cacheContents.append(line);
    }
    br.close();
    fr.close();
    Cache c = null;
    c = new Cache(cacheId, cacheContents.toString());
    return c;
}

[Buggy Hunk]
cacheContents.append(line);

[Patch]
cacheContents.append(line+"\n");