[Demonstration 1]

[Buggy Method]
public void setSolarRadiation(Double sr) {
    data.put("tmin", (sr == null) ? -99.99 : sr);
}

[Buggy Hunk]
data.put("tmin", (sr == null) ? -99.99 : sr);

[Patch]
data.put("srad", sr);

[Demonstration 2]

[Buggy Method]
@Override
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
    if (action.equals("getSettings")) {
        Context ctxt = cordova.getActivity();
        JSONObject retObject = JSONObject();
        retObject.put("connectURL", ConnectionSettings.getConnectURL(ctxt));
        retObject.put("isSkipAuth", ConnectionSettings.isSkipAuth(ctxt));
        retObject.put("googleWebAppClientID", ConnectionSettings.getGoogleWebAppClientID(ctxt));
        callbackContext.success(retObject);
        return true;
    } else {
        return false;
    }
}

[Buggy Hunk]
JSONObject retObject = JSONObject();

[Patch]
JSONObject retObject = new JSONObject();

[Demonstration 3]

[Buggy Method]
public boolean[] getAction(Environment observation) {
    boolean[] action = new boolean[Environment.numberOfButtons];
    if (tickCount == 30) {
        graph.createStartGraph(observation);
        Grapher.setMovementEdges(graph.getLevelMatrix(), graph.getMarioNode(observation));
        List<DirectedEdge> path = AStar.runMultiNodeAStar(graph.getMarioNode(observation), graph.getGoalNodes());
        if (path != null) {
            newestPath = path;
        }
    } else if (tickCount > 30) {
        if (graph.updateMatrix(observation)) {
            graph.printMatrix(observation);
            Grapher.setMovementEdges(graph.getLevelMatrix(), graph.getMarioNode(observation));
        }
        if (DEBUG) {
            DebugDraw.resetGraphics(observation);
            DebugDraw.drawEndNodes(observation, graph.getGoalNodes());
            DebugDraw.drawBlockBeneathMarioNeighbors(observation, graph);
            DebugDraw.drawNeighborPaths(observation, graph);
            DebugDraw.drawReachableNodes(observation, graph);
            DebugDraw.drawPathOptionNodes(observation, graph);
        }
    }
    if (newestPath != null && newestPath.size() > 0) {
        if (MarioControls.reachedNextNode(observation, newestPath) || MarioControls.isPathInvalid(observation, newestPath)) {
            List<DirectedEdge> path = AStar.runMultiNodeAStar(graph.getMarioNode(observation), graph.getGoalNodes());
            if (path != null) {
                newestPath = path;
            }
        }
        MarioControls.getNextAction(observation, newestPath, action);
        if (DEBUG) {
            DebugDraw.drawPath(observation, newestPath);
            DebugDraw.drawAction(observation, action);
        }
    }
    tickCount++;
    return action;
}

[Buggy Hunk]
if (newestPath != null && newestPath.size() > 0) {

[Patch]
if (newestPath != null && newestPath.size() > 1) {