[Demonstration 1]

[Buggy Method]
public void draw() {
    clear();
    camera.zbuffer = new float[Globals.screenSize.x][Globals.screenSize.y];
    Utils.init2dArray(camera.zbuffer, camera.far);
    loadPixels();
    HashMap<Character, Boolean> keyMap = Globals.keyMap;
    if (keyMap.get('a') != null && keyMap.get('a')) {
        theta += rotationSpeed * dt;
    }
    if (keyMap.get('d') != null && keyMap.get('d')) {
        theta -= rotationSpeed * dt;
    }
    Mesh cube = Mesh.generateTriangle();
    Matrix rot = Matrix.rot(new Vec3f(0, 1, 0), theta);
    Matrix trans = Matrix.translate(new Vec3f(0, 0, 2));
    Matrix scale = Matrix.scale(new Vec3f(1, 1, 1));
    Matrix objToWs = trans.mult(scale).mult(rot);
    cube.applyTransformation(objToWs);
    camera.draw(cube);
    Camera.draw2dArray(new Vec2i(Globals.screenSize.x, 0), camera.zbuffer);
    updatePixels();
}

[Buggy Hunk]
Mesh cube = Mesh.generateTriangle();

[Patch]
Mesh cube = Mesh.generateQuad();

[Demonstration 2]

[Buggy Method]
public Object toJSON() {
    List<String> globalNames = names.stream().collect(Collectors.toList());
    List<Double> qElems = Lists.newArrayList(rot.getQ0(), rot.getQ1(), rot.getQ2(), rot.getQ3());
    List<Object> point = Lists.newArrayList(globalNames, x, y, z, qElems, color.toString());
    return point;
}

[Buggy Hunk]
List<Double> qElems = Lists.newArrayList(rot.getQ0(), rot.getQ1(), rot.getQ2(), rot.getQ3());

[Patch]
List<Double> qElems = Lists.newArrayList(rotate.getQ0(), rotate.getQ1(), rotate.getQ2(), rotate.getQ3());

[Demonstration 3]

[Buggy Method]
public static void main(String[] args) throws IOException {
    // Check arguments
    if (args.length < 3) {
        System.err.println("Argument(s) missing!");
        System.err.printf("Usage: java %s host port file%n", SocketClient.class.getName());
        return;
    }
    String host = args[0];
    // Convert port from String to int
    int port = Integer.parseInt(args[1]);
    // Concatenate arguments using a string builder
    StringBuilder sb = new StringBuilder();
    for (int i = 2; i < args.length; i++) {
        sb.append(args[i]);
        if (i < args.length - 1) {
            sb.append(" ");
        }
    }
    String text = sb.toString();
    // Create client socket
    Socket socket = new Socket(host, port);
    System.out.printf("Connected to server %s on port %d %n", Integer.valueOf(host), Integer.valueOf(port));
    // Create stream to send data to server
    DataOutputStream out = new DataOutputStream(socket.getOutputStream());
    // Send text to server as bytes
    out.writeBytes(text);
    out.writeBytes("\n");
    System.out.println("Sent text: " + text);
    // Close client socket
    socket.close();
    System.out.println("Connection closed");
}

[Buggy Hunk]
System.out.printf("Connected to server %s on port %d %n", Integer.valueOf(host), Integer.valueOf(port));

[Patch]
System.out.printf("Connected to server %s on port %d %n", host, Integer.valueOf(port));