[Demonstration 1]

[Buggy Method]
void resolveJar(String groupId, String artifactId, String version, File destination) {
    String urlGroupId = groupId.replaceAll("\\.", "/");
    String artifactName = artifactId + "-" + version;
    String mavenUrl = link + urlGroupId + "/" + artifactId + "/" + version + "/" + artifactName + ".jar";
    System.out.println(mavenUrl);
    URL url;
    try {
        url = new URL(mavenUrl);
    } catch (MalformedURLException e) {
        throw new UnsupportedOperationException("URL failed to parse.");
    }
    try {
        FileUtils.copyURLToFile(url, destination);
    } catch (IOException e) {
        throw new UnsupportedOperationException("Failed to resolve.");
    }
}

[Buggy Hunk]
void resolveJar(String groupId, String artifactId, String version, File destination){

[Patch]
public void resolveJar(String groupId, String artifactId, String version, File destination){

[Demonstration 2]

[Buggy Method]
public ReflectionModel build(UpdaterContext updaterContext) {
    CPPFile headerCppFile = cppFileTuple.getHeaderCPPFile();
    CPPFile cppCppFile = cppFileTuple.getCppCPPFile();
    ReflectionModel model = new ReflectionModel();
    ClassModel classModel = null;
    if (headerCppFile != null) {
        for (CPPClassForwardDeclaration classForwardDeclaration : headerCppFile.getClassForwardDeclarations()) {
            String classForwardDeclarationName = classForwardDeclaration.getName();
            CPPNamespace namespace = classForwardDeclaration.getNamespace();
            String classForwardDeclarationNamespace = (namespace != null) ? namespace.getName() : null;
            String includeHeaderFilePath = ((classForwardDeclarationNamespace != null) ? (classForwardDeclarationNamespace.replace("::", "/") + "/") : "") + (classForwardDeclarationName + ".h");
            File includeHeaderFile = new File(updaterContext.getOriginalHeaderBaseDir(), includeHeaderFilePath);
            if (includeHeaderFile.exists() && includeHeaderFile.isFile()) {
                model.addInclude(includeHeaderFilePath);
                if (classForwardDeclarationNamespace != null) {
                    model.getUsingNamespaceDeclarations().add(classForwardDeclarationNamespace);
                }
            }
        }
        model.addInclude(Utils.createRelativeHeaderFilePath(cppFileTuple));
        Map<String, ClassModel> classModelBySimpleName = new HashMap<String, ClassModel>();
        Map<String, String> classesDeclaredInClasses = new HashMap<String, String>();
        for (CPPClass classDeclaration : headerCppFile.getClasses()) {
            classModel = buildClassModel(updaterContext, classDeclaration, model.getIncludes());
            if (classModel != null) {
                model.addClass(classModel);
                classModelBySimpleName.put(classModel.getClassName(), classModel);
                String declaredParentClassName = Utils.getClassName(classDeclaration);
                if (declaredParentClassName != null) {
                    classesDeclaredInClasses.put(classModel.getClassName(), declaredParentClassName);
                }
            }
        }
        for (Entry<String, String> entry : classesDeclaredInClasses.entrySet()) {
            String declaredClassName = entry.getKey();
            String declaredParentClassName = entry.getValue();
            classModelBySimpleName.get(declaredParentClassName).addDeclaredClass(declaredClassName);
            classModelBySimpleName.get(declaredClassName).setDeclaringClass(declaredParentClassName);
        }
    }
    if (cppCppFile != null) {
        for (CPPClass classDefinition : cppCppFile.getClasses()) {
            if ((headerCppFile == null) || (headerCppFile.getClass(classDefinition.getName()) == null)) {
                classModel = buildClassModel(updaterContext, classDefinition, model.getIncludes());
                if (classModel != null) {
                    model.addClass(classModel);
                }
            }
        }
    }
    return model;
}

[Buggy Hunk]
String declaredParentClassName = Utils.getClassName(classDeclaration);

[Patch]
String declaredParentClassName = Utils.getDeclaredParentClassName(classDeclaration);

[Demonstration 3]

[Buggy Method]
@Override
public void onDialogPositiveClick(DialogFragment dialog, int index) {
    TextView t = (TextView) dialog.getDialog().findViewById(R.id.word);
    if (index > 0) {
        keys.set(index, t.getText().toString());
    } else {
        keys.add(t.getText().toString());
    }
    listAdapter.notifyDataSetChanged();
    updateWords();
    dialog.dismiss();
}

[Buggy Hunk]
if(index > 0) {

[Patch]
if(index >= 0) {