[Demonstration 1]

[Buggy Method]
public Template parseTemplate(String smartyCode) throws IOException, TemplateException {
    Template template = templates.get(smartyCode);
    if (template != null && !(debug && template.isUpdated())) {
        return template;
    }
    template = new Template(this, smartyCode);
    templates.put(smartyCode, template);
    return template;
}

[Buggy Hunk]
if (template != null && !(debug && template.isUpdated())) {

[Patch]
if (template != null) {

[Demonstration 2]

[Buggy Method]
@Override
public synchronized Collection<NodeProvisioner.PlannedNode> provision(final Label label, final int excessWorkload) {
    LOGGER.info(String.format("provision(%s;%s)", label.getName(), excessWorkload + ""));
    final FleetStateStats stats = updateStatus();
    int maxAllowed = this.getMaxSize();
    if (maxAllowed - stats.getNumDesired() <= 0 || !"active".equals(stats.getState())) {
        return Collections.emptyList();
    }
    int expectWorkload;
    if (maxAllowed - stats.getNumDesired() < excessWorkload) {
        expectWorkload = maxAllowed - stats.getNumDesired();
    } else {
        expectWorkload = excessWorkload;
    }
    final ModifySpotFleetRequestRequest request = new ModifySpotFleetRequestRequest();
    request.setSpotFleetRequestId(fleet);
    int targetCapacity = stats.getNumDesired() + expectWorkload;
    request.setTargetCapacity(targetCapacity);
    final AmazonEC2 ec2 = connect(credentialsId, region);
    ec2.modifySpotFleetRequest(request);
    final List<NodeProvisioner.PlannedNode> resultList = new ArrayList<NodeProvisioner.PlannedNode>();
    for (int f = 0; f < expectWorkload; ++f) {
        final SettableFuture<Node> futureNode = SettableFuture.create();
        final NodeProvisioner.PlannedNode plannedNode = new NodeProvisioner.PlannedNode("FleetNode-" + f, futureNode, 1);
        resultList.add(plannedNode);
        this.plannedNodes.add(plannedNode);
    }
    LOGGER.info(String.format("provision(%s;%s) -> %s", label.getName(), excessWorkload + "", expectWorkload + ""));
    return resultList;
}

[Buggy Hunk]
if (maxAllowed - stats.getNumDesired() <= 0 || !"active".equals(stats.getState())){

[Patch]
if (pause || (maxAllowed - stats.getNumDesired() <= 0) || !"active".equals(stats.getState())){

[Demonstration 3]

[Buggy Method]
@Override
public Story patch(String id, String status, String contribution, String estimate, String assignedUser) throws CardioTechnicalException, CardioFunctionalException {
    LOGGER.debug("[SVC] patch story ...");
    Story story = find(id);
    boolean updateTimestamp = false;
    if (status != null) {
        if (!story.getStatus().equals(status)) {
            updateTimestamp = true;
        }
        story.setStatus(StoryStatus.valueOf(status));
    }
    if (contribution != null) {
        story.setContribution(Integer.parseInt(contribution));
    }
    if (estimate != null) {
        story.setEstimate(Integer.parseInt(estimate));
    }
    if (assignedUser != null) {
        story.setAssignedUser(Long.parseLong(assignedUser));
    }
    return update(story, updateTimestamp);
}

[Buggy Hunk]
if (!story.getStatus().equals(status)) {

[Patch]
if (!story.getStatus().toString().equals(status)) {