[Demonstration 1]

[Buggy Method]
public NodeRef createFolderNode(NodeRef parent, String name, String model, String type, Map<QName, Serializable> properties) {
    QName qtype = null;
    if (parent == null || name.equals(""))
        return null;
    if (model == null || model.equals(""))
        model = NamespaceService.CONTENT_MODEL_1_0_URI;
    if (type == null || type.equals("")) {
        qtype = ContentModel.TYPE_FOLDER;
    } else {
        qtype = QName.createQName(model, type);
    }
    NodeRef node = null;
    checkStoresAndRootNodes();
    NodeRef companyHomeCheck = null;
    QName assoc = null;
    if (this.rootNodes.indexOf(parent) > -1) {
        companyHomeCheck = resolveCompanyHome(name, parent);
        assoc = ContentModel.ASSOC_CHILDREN;
    } else {
        assoc = ContentModel.ASSOC_CONTAINS;
    }
    if (companyHomeCheck == null) {
        List<String> names = Arrays.asList(name);
        List<ChildAssociationRef> children = this.nodeService.getChildrenByName(parent, assoc, names);
        if (children.size() == 1) {
            node = children.get(0).getChildRef();
            Map<QName, Serializable> existingProperties = this.nodeService.getProperties(node);
            if (properties != null)
                existingProperties.putAll(properties);
            setNodePropertiesInTransaction(node, existingProperties);
            logger.info("Using existing container \"" + name + "\".");
        } else if (children.size() == 0) {
            if (properties == null)
                properties = new HashMap<QName, Serializable>(1);
            properties.put(ContentModel.PROP_NAME, name);
            node = createNodeInTransaction(parent, assoc, model, name, qtype, properties, null, null, null);
            logger.info("Creating new container \"" + name + "\". ");
        } else {
            logger.info("There is more than one container named \"" + name + "\" existing... Do not know which one to use. Giving up.");
            return null;
        }
    } else {
        logger.info("Using existing Company Home.");
        node = companyHomeCheck;
    }
    return node;
}

[Buggy Hunk]
companyHomeCheck = resolveCompanyHome( name , parent );

[Patch]
companyHomeCheck = resolveRootChildren( name , parent );

[Demonstration 2]

[Buggy Method]
String generateBillID(String groupName, String billName) {
    return groupName + billName;
}

[Buggy Hunk]
String generateBillID(String groupName, String billName) {

[Patch]
private String generateBillID(String groupName, String billName) {

[Demonstration 3]

[Buggy Method]
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    // save adapter items
    final ArrayList<ParamsAdapterItem> pwms = new ArrayList<ParamsAdapterItem>(adapter.getOriginalValues());
    outState.putSerializable(ADAPTER_ITEMS, pwms);
}

[Buggy Hunk]
outState.putSerializable(ADAPTER_ITEMS, pwms);

[Patch]
outState.putParcelableArrayList(ADAPTER_ITEMS, pwms);