[Demonstration 1]

[Buggy Method]
@ApiOperation(value = "Re-query a location from an existing query. " + "This runs asynchronously and returns a query object which can later be used to get the results.")
@RequestMapping(path = "/requery/query/{queryId}/locationMap/{queryLocationMapId}", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
@ResponseBody
public Query requeryPatients(@PathVariable("queryId") Long queryId, @PathVariable("queryLocationMapId") Long queryLocationMapId) throws JsonProcessingException, IOException {
    CommonUser user = UserUtil.getCurrentUser();
    //auditManager.addAuditEntry(QueryType.SEARCH_PATIENT, "/search", user.getSubjectName());
    QueryDTO initiatedQuery = searchManager.requeryForPatientRecords(queryLocationMapId, user);
    return DtoToDomainConverter.convert(initiatedQuery);
}

[Buggy Hunk]
public @ResponseBody Query requeryPatients(@PathVariable("queryId") Long queryId,

[Patch]
public synchronized @ResponseBody Query requeryPatients(@PathVariable("queryId") Long queryId,

[Demonstration 2]

[Buggy Method]
@RequestMapping("/")
public String helloWorld(Model model) {
    String sessionId = RequestContextHolder.currentRequestAttributes().getSessionId();
    long userCode;
    if (!userService.isUserInSystem(sessionId)) {
        userCode = IdCreatorService.getAndIncrementClientId();
        User user = new User(sessionId);
        user.setUserCode(userCode);
        userService.addUserToSystem(new User(sessionId));
    } else {
        userCode = userService.getUserById(sessionId).getUserCode();
    }
    model.addAttribute("code", userCode);
    model.addAttribute("sessionId", sessionId);
    return "index";
}

[Buggy Hunk]
userService.addUserToSystem(new User(sessionId));

[Patch]
userService.addUserToSystem(user);

[Demonstration 3]

[Buggy Method]
public static Result service(String ownerName, String projectName, String service, boolean isAdvertise) throws IOException, UnsupportedOperationException, ServletException {
    if (!isSupportedService(service)) {
        return forbidden(String.format("Unsupported service: '%s'", service));
    }
    Project project = Project.findByOwnerAndProjectName(ownerName, projectName);
    if (project == null) {
        return notFound();
    }
    models.User user = UserApp.currentUser();
    if (!isAllowed(project, service)) {
        if (user.isAnonymous()) {
            return BasicAuthAction.unauthorized(response());
        } else {
            // If you want the Git client showing your custom message to
            // the user, the Content-Type should be exact "text/plain"
            // without any parameter. For more details, see the code at
            // https://github.com/git/git/commit/426e70d4a11ce3b4f70636d57c6a0ab16ae08a00#diff-eea0ad565ec5903a11b6023755d491cfR154
            response().setHeader("Content-Type", "text/plain");
            return forbidden(String.format("'%s' has no permission to '%s/%s'.", user.name, ownerName, projectName));
        }
    }
    if (isAdvertise) {
        return ok(RepositoryService.gitAdvertise(project, service, response()));
    } else {
        if (request().body().isMaxSizeExceeded()) {
            return status(REQUEST_ENTITY_TOO_LARGE);
        } else {
            user.visits(project);
            return ok(RepositoryService.gitRpc(project, service, request(), response()));
        }
    }
}

[Buggy Hunk]
user.name, ownerName, projectName));

[Patch]
user.loginId, ownerName, projectName));