[Demonstration 1]

[Buggy Method]
@Override
public void handle(String s, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    response.setContentType("application/json");
    JSONObject knxResponse = new JSONObject();
    Map<String, GroupAddress> p1List = buildList();
    try (FluxLogger flux = new FluxLogger()) {
        for (String key : p1List.keySet()) {
            String value = KNXLink.getInstance().readString(p1List.get(key));
            BigInteger decimal = new BigInteger(value.replace(" ", ""), 16);
            knxResponse.put(key, decimal);
            flux.message("P1," + key + "=" + decimal);
        }
    } catch (KNXException | InterruptedException e) {
        LogstashLogger.INSTANCE.message("ERROR: failed to request p1 values, " + e.getMessage());
    }
    LogstashLogger.INSTANCE.message("INFO: KNX request P1 => " + knxResponse.toString(4));
    response.getWriter().println(knxResponse.toString(4));
    response.setStatus(HttpServletResponse.SC_OK);
    baseRequest.setHandled(true);
}

[Buggy Hunk]
flux.message("P1," + key + "=" + decimal);

[Patch]
flux.message("P1,metric=" + key + " value=" + decimal + "i");

[Demonstration 2]

[Buggy Method]
@Override
public void onJobProgress(long progress) {
    toast("onJobProgress = " + progress + " lock = " + lock);
}

[Buggy Hunk]
toast("onJobProgress = " + progress + " lock = " + lock);

[Patch]
toast("onJobProgress = " + progress + " lock = " + System.identityHashCode(lock));

[Demonstration 3]

[Buggy Method]
@Override
public void buildCtrPrimitive(String id, XVarInteger x, TypeConditionOperatorRel op, int k) {
    String expr = op.name().toLowerCase() + "(" + x.id + "," + k + ")";
    IVec<Var> scope = new Vec<Var>(1);
    scope.push(this.varmapping.get(x.id));
    IVec<Evaluable> vars = new Vec<Evaluable>(1);
    vars.push(this.varmapping.get(x.id));
    Predicate p = new Predicate();
    p.addVariable(normalizeCspVarName(x.id));
    p.setExpression(expr);
    try {
        p.toClause(this.solver, scope, vars);
    } catch (ContradictionException e) {
        this.contradictionFound = true;
    }
}

[Buggy Hunk]
String expr = op.name().toLowerCase()+"("+x.id+","+k+")";

[Patch]
String expr = op.name().toLowerCase()+"("+normalizeCspVarName(x.id)+","+k+")";