[Demonstration 1]

[Buggy Method]
public static void Run() throws InterruptedException {
    try {
        Reset();
        SequentialAccess();
        Reset();
        RandomAccess();
        Reset();
        StrideAccess(true, 32);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
StrideAccess(true, 32);

[Patch]
StrideAccess(false, 32);

[Demonstration 2]

[Buggy Method]
@RequestMapping(value = "/roles", method = RequestMethod.POST)
public int addRole(@RequestBody RoleEntity roleEntity) {
    return roleService.addRole(roleEntity);
}

[Buggy Hunk]
public int addRole(@RequestBody RoleEntity roleEntity){

[Patch]
public RoleEntity addRole(@RequestBody RoleEntity roleEntity){

[Demonstration 3]

[Buggy Method]
public static void createApplication(String applicationCode, String mysqlHostname, String mysqlPort, String mysqlExtra, String mysqlDatabase, String mysqlUsername, String mysqlPassword, ApplicationDataSourceFactoryBean.ApplicationDataSource applicationDataSource, DbSupport dbSupport, ServletContext servletContext) {
    Schema schema = dbSupport.getSchema(mysqlDatabase);
    boolean exists = false;
    boolean error = true;
    while (error) {
        try {
            exists = schema.exists();
            error = false;
        } catch (FlywayException e) {
        }
    }
    if (exists) {
        throw new WicketRuntimeException("internal error");
    }
    XMLPropertiesConfiguration configuration = Constants.getXmlPropertiesConfiguration();
    schema.create();
    String jdbcUrl = "jdbc:mysql://" + mysqlHostname + ":" + mysqlPort + "/" + mysqlDatabase + "?" + mysqlExtra;
    JdbcTemplate applicationJdbcTemplate = applicationDataSource.getJdbcTemplate(applicationCode, jdbcUrl, mysqlUsername, mysqlPassword);
    File ddlRepo = new File(servletContext.getRealPath("WEB-INF/application"));
    File[] ddls = ddlRepo.listFiles();
    if (ddls != null && ddls.length > 0) {
        for (File ddl : ddls) {
            if (ddl.isFile() && "sql".equalsIgnoreCase(FilenameUtils.getExtension(ddl.getName()))) {
                try {
                    applicationJdbcTemplate.execute(FileUtils.readFileToString(ddl));
                    LOGGER.info("{} {}", applicationCode, ddl.getName());
                } catch (IOException e) {
                    throw new WicketRuntimeException(e);
                }
            }
        }
    }
    File resourceRepo = new File(configuration.getString(Constants.RESOURCE_REPO));
    File applicationRepo = new File(resourceRepo, applicationCode);
    applicationRepo.mkdirs();
    String roleId;
    List<Map<String, Object>> roles = new ArrayList<>();
    {
        Map<String, Object> role = new HashMap<>();
        roleId = UUID.randomUUID().toString();
        role.put(Jdbc.Role.ROLE_ID, roleId);
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_ADMINISTRATOR));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_ADMINISTRATOR_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_REGISTERED));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_REGISTERED_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_ANONYMOUS));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_ANONYMOUS_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_OAUTH2_AUTHORIZATION));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_OAUTH2_AUTHORIZATION_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_OAUTH2_IMPLICIT));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_OAUTH2_IMPLICIT_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_OAUTH2_PASSWORD));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_OAUTH2_PASSWORD_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        Map<String, Object> role = new HashMap<>();
        role.put(Jdbc.Role.ROLE_ID, UUID.randomUUID().toString());
        role.put(Jdbc.Role.NAME, configuration.getString(Constants.ROLE_OAUTH2_CLIENT));
        role.put(Jdbc.Role.DESCRIPTION, configuration.getString(Constants.ROLE_OAUTH2_CLIENT_DESCRIPTION));
        role.put(Jdbc.Role.SYSTEM, true);
        roles.add(role);
    }
    {
        SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(applicationJdbcTemplate);
        jdbcInsert.withTableName(Jdbc.ROLE);
        for (Map<String, Object> role : roles) {
            jdbcInsert.execute(role);
        }
    }
    String userId = UUID.randomUUID().toString();
    {
        SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(applicationJdbcTemplate);
        jdbcInsert.withTableName(Jdbc.USER);
        Map<String, Object> user = new HashMap<>();
        user.put(Jdbc.User.USER_ID, userId);
        user.put(Jdbc.User.ACCOUNT_NON_EXPIRED, true);
        user.put(Jdbc.User.SYSTEM, true);
        user.put(Jdbc.User.ACCOUNT_NON_LOCKED, true);
        user.put(Jdbc.User.CREDENTIALS_NON_EXPIRED, true);
        user.put(Jdbc.User.STATUS, UserStatusEnum.Active.getLiteral());
        user.put(Jdbc.User.LOGIN, configuration.getString(Constants.USER_ADMIN));
        user.put(Jdbc.User.FULL_NAME, configuration.getString(Constants.USER_ADMIN));
        user.put(Jdbc.User.PASSWORD, configuration.getString(Constants.USER_ADMIN_PASSWORD));
        user.put(Jdbc.User.ROLE_ID, roleId);
        user.put(Jdbc.User.AUTHENTICATION, AuthenticationEnum.None.getLiteral());
        jdbcInsert.execute(user);
        applicationJdbcTemplate.update("UPDATE " + Jdbc.USER + " SET " + Jdbc.User.PASSWORD + " = MD5(?) WHERE " + Jdbc.User.USER_ID + " = ?", configuration.getString(Constants.USER_ADMIN_PASSWORD), userId);
    }
    {
        String menuRoot = configuration.getString(Constants.MENU_ROOT);
        SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(applicationJdbcTemplate);
        jdbcInsert.withTableName(Jdbc.MENU);
        Map<String, Object> menu = new HashMap<>();
        String menuId = UUID.randomUUID().toString();
        menu.put(Jdbc.Menu.MENU_ID, menuId);
        menu.put(Jdbc.Menu.TITLE, menuRoot);
        menu.put(Jdbc.Menu.DATE_CREATED, new Date());
        menu.put(Jdbc.Menu.USER_ID, userId);
        jdbcInsert.execute(menu);
    }
}

[Buggy Hunk]
applicationJdbcTemplate.execute(FileUtils.readFileToString(ddl));

[Patch]
applicationJdbcTemplate.execute(FileUtils.readFileToString(ddl, "UTF-8"));