[Demonstration 1]

[Buggy Method]
private CoreException replaceCoreExceptionIfItComesFromInstanceNotFound(final ExecutableEnvironment executableEnvironment, final CoreException e) {
    IStatus status = e.getStatus();
    Throwable cause = status.getException();
    while (cause != null) {
        if (cause instanceof InstanceNotFoundException) {
            return new CoreException(new Status(IStatus.ERROR, EOSGiEclipsePlugin.PLUGIN_ID, "Cannot distrubute changes to environment '" + executableEnvironment.getExecutionId() + "' of project '" + executableEnvironment.getEOSGiProject().getMavenProjectFacade().getProject().getName() + "': " + cause.getMessage(), cause));
        }
        cause = cause.getCause();
    }
    return e;
}

[Buggy Hunk]
+ executableEnvironment.getExecutionId() + "' of project '"

[Patch]
+ executableEnvironment.getEnvironmentId() + "' of project '"

[Demonstration 2]

[Buggy Method]
@Override
public void process(HttpServletRequest req, HttpServletResponse resp) {
    JSONObject ret = new JSONObject();
    VerifiedToken token = verifyUserToken(req);
    if (token != null) {
        String q = getStringParam(req, "q");
        Result result;
        switch(q) {
            case "getallcriteria":
                result = getAllCriteria();
                break;
            case "getstudentcriteria":
                result = getAllCriteriaOfStudent(token);
                break;
            case "addcriteria":
                result = addCriteria(token, req);
                break;
            default:
                result = null;
                break;
        }
        if (result != null) {
            if (result.getErrorCode() == ErrorCode.SUCCESS) {
                ret.put(RetCode.data, result.getData());
            }
            ret.put(RetCode.success, result.getErrorCode().getValue());
        } else {
            ret.put(RetCode.success, ErrorCode.FAIL.getValue());
        }
        if (token.isNewToken()) {
            setAuthTokenToCookie(resp, token.getToken());
        }
    } else {
        ret.put(RetCode.unauth, true);
        ret.put(RetCode.success, ErrorCode.ACCESS_DENIED.getValue());
    }
    response(req, resp, ret);
}

[Buggy Hunk]
if (result.getErrorCode() == ErrorCode.SUCCESS) {

[Patch]
if (result.getErrorCode() == ErrorCode.SUCCESS && result.getData() != null) {

[Demonstration 3]

[Buggy Method]
public void onServiceConnected(ComponentName className, IBinder service) {
    bound = ((TerminalManager.TerminalBinder) service).getService();
    // let manager know about our event handling services
    bound.disconnectHandler = disconnectHandler;
    bound.setResizeAllowed(true);
    final String requestedNickname = (requested != null) ? requested.getFragment() : null;
    int requestedIndex = 0;
    TerminalBridge requestedBridge = bound.getConnectedBridge(requestedNickname);
    // If we didn't find the requested connection, try opening it
    if (requestedNickname != null && requestedBridge == null) {
        try {
            Log.d(TAG, String.format("We couldnt find an existing bridge with URI=%s (nickname=%s), so creating one now", requested.toString(), requestedNickname));
            requestedBridge = bound.openConnection(requested);
        } catch (Exception e) {
            Log.e(TAG, "Problem while trying to create new requested bridge from URI", e);
        }
    }
    // create views for all bridges on this service
    adapter.notifyDataSetChanged();
    requestedIndex = bound.getBridges().indexOf(requestedBridge);
    setDisplayedTerminal(requestedIndex == -1 ? 0 : requestedIndex);
}

[Buggy Hunk]
bound.disconnectHandler = disconnectHandler;

[Patch]
bound.disconnectListener = ConsoleActivity.this;