[Demonstration 1]

[Buggy Method]
@Override
public void done(final ParseUser user, ParseException e) {
    if (e == null) {
        if (user == null) {
            Log.d("MyApp", "User cancelled Facebook login");
            return;
        } else if (user.isNew()) {
            Log.d("MyApp", "User signed up and logged in through Facebook");
        } else {
            Log.d("MyApp", "User logged in through Facebook!!!");
        }
    } else {
        e.printStackTrace();
    }
    fbGraphClient = new FBGraphClient();
    parseClient = new ParseClient();
    currentUserFbId = fbGraphClient.getCurrentUserFbId();
    accessToken = fbGraphClient.getAccessToken();
    //Deserializes the ParseUser in order to have JSONObjects that are retrievable.
    GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {

        @Override
        public void onCompleted(JSONObject object, GraphResponse response) {
            if (object != null) {
                another_user = User.fromJSON(object, user, accessToken.getUserId());
            } else {
                Log.d("DEBUG", "Login - object null, response: " + response.toString());
            }
        }
    });
    Bundle params = new Bundle();
    params.putString("fields", "id,name,location,timezone,picture.type(large)");
    request.setParameters(params);
    request.executeAsync();
    //DEBUG info: if one of the fields turns out to be empty,
    // it might be because you have3 no PERMISSION to access it
    // look it up in API and add more permissions to the array
    Intent i = new Intent(LoginActivity.this, FriendImportActivity.class);
    startActivity(i);
}

[Buggy Hunk]
Intent i = new Intent (LoginActivity.this, FriendImportActivity.class);

[Patch]
Intent i = new Intent (LoginActivity.this, NewsFeedActivity.class);

[Demonstration 2]

[Buggy Method]
@Override
public void execute(MicroserviceRequest request) throws ServiceExecutionException {
    try {
        MicroserviceResponse response = new MicroserviceResponse();
        response.setCorrelationID(request.getCorrelationID());
        Object data = request.getPayload();
        if (data instanceof User) {
            User user = (User) data;
            if (user.getUsername() == null || user.getUsername().isEmpty() || user.getPassword() == null || user.getPassword().isEmpty()) {
                DataAccessObject<User> dao = (DataAccessObject<User>) DAOFactory.getInstance().getDAO(user);
                List<User> users = dao.find(user);
                if (!users.isEmpty()) {
                    response.setStatus(MicroserviceResponse.SUCCESS);
                } else {
                    response.setStatus(MicroserviceResponse.FAILURE);
                    response.setStatusMessage("Login failed");
                }
            } else {
                response.setStatus(MicroserviceResponse.FAILURE);
                response.setStatusMessage("Username or password not set");
            }
        } else {
            response.setStatus(MicroserviceResponse.FAILURE);
            response.setStatusMessage("Invalid arguments for user creation service");
        }
        sendResponse(response);
    } catch (QueueException e) {
        throw new ServiceExecutionException(e);
    }
}

[Buggy Hunk]
if(user.getUsername() == null || user.getUsername().isEmpty() || user.getPassword() == null || user.getPassword().isEmpty()){

[Patch]
if(user.getUsername() != null && !user.getUsername().isEmpty() && user.getPassword() != null && !user.getPassword().isEmpty()){

[Demonstration 3]

[Buggy Method]
void findFreqThresholdPoisson() throws IOException {
    double P = 1;
    // put value of lamba into Poisson class (static for simplicity)
    int r = 1;
    while (valuesDistribution1[r] != 0) r++;
    System.out.println("r= " + r);
    double[] valuesDistributionS = new double[r - 1];
    for (int i = 0; i < r - 1; i++) valuesDistributionS[i] = valuesDistribution1[i + 1];
    estimateLambdaPoisson(valuesDistributionS, 1);
    int n = 1;
    while (P > 0.01) {
        try {
            P = 1 - pPoiss(n);
        } catch (Exception ex) {
            Logger.getLogger(DataSet.class.getName()).log(Level.SEVERE, "", ex);
        }
        n++;
    }
    freqThr = n;
    System.out.println("Threshold =  " + n);
}

[Buggy Hunk]
while (valuesDistribution1[r] != 0)

[Patch]
while ((r < valuesDistribution1.length) && (valuesDistribution1[r] != 0))