[Demonstration 1]

[Buggy Method]
@Override
public void delete(ArticleBean param) {
    while (it.hasNext()) {
        if (it.next().getSeq().equals(param.getSeq()) && it.next() != null) {
            it.remove();
        }
    }
}

[Buggy Hunk]
if(it.next().getSeq().equals(param.getSeq()) && it.next()!=null) {

[Patch]
if(it.next().getSeq().equals(param.getSeq())) {

[Demonstration 2]

[Buggy Method]
protected ModuleDescriptor<?> createModuleDescriptor(final Plugin plugin, final Element element, final ModuleDescriptorFactory moduleDescriptorFactory) throws PluginParseException {
    final String name = element.getName();
    // Determine if this module descriptor is applicable for the current application
    if (!PluginUtils.doesModuleElementApplyToApplication(element, applicationKeys)) {
        log.debug("Ignoring module descriptor for this application: " + element.attributeValue("key"));
        return null;
    }
    ModuleDescriptor<?> moduleDescriptorDescriptor;
    // Try to retrieve the module descriptor
    try {
        //if we're annotated with jaxb, unmarshall the descriptor
        final Class<? extends ModuleDescriptor> moduleDescriptorClazz = moduleDescriptorFactory.getModuleDescriptorClass(name);
        if (AbstractMarshalledDescriptor.class.isAssignableFrom(moduleDescriptorClazz) && moduleDescriptorClazz.isAnnotationPresent(XmlRootElement.class)) {
            String elementXml = element.asXML();
            ByteArrayInputStream input = new ByteArrayInputStream(elementXml.getBytes("UTF-8"));
            moduleDescriptorDescriptor = JAXB.unmarshal(input, moduleDescriptorClazz);
        } else {
            moduleDescriptorDescriptor = moduleDescriptorFactory.getModuleDescriptor(name);
        }
    }// When there's a problem loading a module, return an UnrecognisedModuleDescriptor with error
     catch (final Throwable e) {
        e.printStackTrace();
        final UnrecognisedModuleDescriptor descriptor = UnrecognisedModuleDescriptorFactory.createUnrecognisedModuleDescriptor(plugin, element, e, moduleDescriptorFactory);
        log.error("There were problems loading the module '" + name + "' in plugin '" + plugin.getName() + "'. The module has been disabled.");
        log.error(descriptor.getErrorText(), e);
        return descriptor;
    }
    // When the module descriptor has been excluded, null is returned (PLUG-5)
    if (moduleDescriptorDescriptor == null) {
        log.info("The module '" + name + "' in plugin '" + plugin.getName() + "' is in the list of excluded module descriptors, so not enabling.");
        return null;
    }
    // Once we have the module descriptor, create it using the given information
    try {
        moduleDescriptorDescriptor.init(plugin, element);
    }// If it fails, return a dummy module that contains the error
     catch (final Exception e) {
        final UnloadableModuleDescriptor descriptor = UnloadableModuleDescriptorFactory.createUnloadableModuleDescriptor(plugin, element, e, moduleDescriptorFactory);
        log.error("There were problems loading the module '" + name + "'. The module and its plugin have been disabled.");
        log.error(descriptor.getErrorText(), e);
        return descriptor;
    }
    return moduleDescriptorDescriptor;
}

[Buggy Hunk]
if(AbstractMarshalledDescriptor.class.isAssignableFrom(moduleDescriptorClazz) && moduleDescriptorClazz.isAnnotationPresent(XmlRootElement.class))

[Patch]
if(moduleDescriptorClazz != null && AbstractMarshalledDescriptor.class.isAssignableFrom(moduleDescriptorClazz) && moduleDescriptorClazz.isAnnotationPresent(XmlRootElement.class))

[Demonstration 3]

[Buggy Method]
public void submitRegistration(View v) {
    boolean isValid = isValidEmail(getEmail());
    if (!isValid) {
        Toast.makeText(this, "Invalid email address. Please check again.", Toast.LENGTH_LONG).show();
    } else if (getFname().isEmpty() || getLname().isEmpty() || getUsername().isEmpty() || getEmail().isEmpty() || getUserType().isEmpty() || !passwordOK) {
        Toast.makeText(this, "Please note that all the fields are required. Passwords must match", Toast.LENGTH_LONG).show();
    } else {
        new SubmitLoginAndSignup(v.getContext(), this).execute("register", getUsername(), getPassword(), getFname(), getLname(), getEmail(), getUserType(), getAvatar());
    }
}

[Buggy Hunk]
if (getFname().isEmpty() || getLname().isEmpty() || getUsername().isEmpty() || getEmail().isEmpty() || getUserType().isEmpty() || !passwordOK) {

[Patch]
if (getFname().isEmpty() || getLname().isEmpty() || getUsername().isEmpty() || getEmail().isEmpty() || getUserType().isEmpty() || !passwordOK || !getPassword().equals(getPasswordConfirm())) {