[Demonstration 1]

[Buggy Method]
private Set<String> processTagsString(String tags) {
    Set<String> tagSet = new HashSet<String>();
    String[] tagStrings = tags.split(",");
    for (String tagString : tagStrings) {
        tagSet.add(tagString.trim());
    }
    return tagSet;
}

[Buggy Hunk]
tagSet.add(tagString.trim());

[Patch]
tagSet.add(tagString.trim().toLowerCase());

[Demonstration 2]

[Buggy Method]
public final Set<Class<? extends ParaObject>> getComponentClasses(String basePackage) {
    basePackage = (basePackage == null) ? "" : basePackage;
    Set<Class<? extends ParaObject>> classes = new HashSet<Class<? extends ParaObject>>();
    for (BeanDefinition candidate : findCandidateComponents(basePackage)) {
        try {
            Class<? extends ParaObject> cls = (Class<? extends ParaObject>) ClassUtils.resolveClassName(candidate.getBeanClassName(), Thread.currentThread().getContextClassLoader());
            classes.add(cls);
        } catch (Exception ex) {
            logger.error(null, ex);
        }
    }
    return classes;
}

[Buggy Hunk]
logger.error(null, ex);

[Patch]
LOG.error(null, ex);

[Demonstration 3]

[Buggy Method]
public boolean isComplete() {
    try {
        if (mArtist.trim() != "" && mTitle.trim() != "") {
            return true;
        }
    } catch (NullPointerException e) {
        return false;
    }
    return false;
}

[Buggy Hunk]
if (mArtist.trim() != "" && mTitle.trim() != "") {

[Patch]
if (!mArtist.trim().equals("") && !mTitle.trim().equals("")) {