[Demonstration 1]

[Buggy Method]
public static void runPlugin(String id) {
    try {
        HttpClient client = new DefaultHttpClient();
        URI uri = new URI(lurchUrl + "/plugin/run/" + id);
        HttpPost request = new HttpPost();
        request.setURI(uri);
        final String basicAuth = "Basic " + Base64.encodeToString("lurch:04ed252949e3".getBytes(), Base64.NO_WRAP);
        request.setHeader("Authorization", basicAuth);
        client.execute(request);
    } catch (URISyntaxException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
final String basicAuth = "Basic " + Base64.encodeToString("lurch:04ed252949e3".getBytes(), Base64.NO_WRAP);

[Patch]
final String basicAuth = "Basic " + Base64.encodeToString(lurchAuth.getBytes(), Base64.NO_WRAP);

[Demonstration 2]

[Buggy Method]
private void buildCriteria(String type, String grade, String variety, String size, String packageName, String transMode, String district, Criteria cirteria) {
    if (type != null && !type.equalsIgnoreCase(ALL)) {
        cirteria.and(("type")).is(type);
    }
    if (packageName != null && !packageName.equals(ALL)) {
        cirteria.and(("package")).is(packageName);
    }
    if (size != null && !size.equals(ALL)) {
        cirteria.and(("size")).is(size);
    }
    if (grade != null && !grade.equals(ALL)) {
        cirteria.and(("grade")).is(grade);
    }
    if (variety != null && !variety.equals(ALL)) {
        cirteria.and(("variety")).is(variety);
    }
    if (transMode != null && !transMode.equalsIgnoreCase(ALL)) {
        cirteria.and("transMode").is(transMode);
    }
    if (district != null && !district.equalsIgnoreCase(ALL)) {
        cirteria.and("district").is(district);
    }
}

[Buggy Hunk]
cirteria.and(("type")).is(type);

[Patch]
cirteria.and(("type")).in(Lists.newArrayList(type.toUpperCase(),type.toLowerCase()));

[Demonstration 3]

[Buggy Method]
@Test
public void testSatisfiedByWithClustering() {
    ColumnDefinition location = getColumn(CLUSTERING_BACKEND, UTF8Type.instance.decompose("location"));
    ColumnDefinition age = getColumn(CLUSTERING_BACKEND, UTF8Type.instance.decompose("age"));
    ColumnDefinition height = getColumn(CLUSTERING_BACKEND, UTF8Type.instance.decompose("height"));
    ColumnDefinition score = getColumn(CLUSTERING_BACKEND, UTF8Type.instance.decompose("score"));
    Unfiltered row = buildRow(new Clustering(UTF8Type.instance.fromString("US"), Int32Type.instance.decompose(27)), buildCell(height, Int32Type.instance.decompose(182), System.currentTimeMillis()), buildCell(score, DoubleType.instance.decompose(1.0d), System.currentTimeMillis()));
    Operation.Builder builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(age, Operator.EQ, Int32Type.instance.decompose(27)));
    builder.add(new SimpleExpression(height, Operator.EQ, Int32Type.instance.decompose(182)));
    Assert.assertTrue(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(age, Operator.EQ, Int32Type.instance.decompose(28)));
    builder.add(new SimpleExpression(height, Operator.EQ, Int32Type.instance.decompose(182)));
    Assert.assertFalse(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(location, Operator.EQ, UTF8Type.instance.decompose("US")));
    builder.add(new SimpleExpression(age, Operator.GTE, Int32Type.instance.decompose(27)));
    Assert.assertTrue(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(location, Operator.EQ, UTF8Type.instance.decompose("BY")));
    builder.add(new SimpleExpression(age, Operator.GTE, Int32Type.instance.decompose(28)));
    Assert.assertFalse(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(location, Operator.EQ, UTF8Type.instance.decompose("US")));
    builder.add(new SimpleExpression(age, Operator.LTE, Int32Type.instance.decompose(27)));
    builder.add(new SimpleExpression(height, Operator.GTE, Int32Type.instance.decompose(182)));
    Assert.assertTrue(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(location, Operator.EQ, UTF8Type.instance.decompose("US")));
    builder.add(new SimpleExpression(height, Operator.GTE, Int32Type.instance.decompose(182)));
    builder.add(new SimpleExpression(score, Operator.EQ, DoubleType.instance.decompose(1.0d)));
    Assert.assertTrue(builder.complete().satisfiedBy(row, false));
    builder = new Operation.Builder(OperationType.AND, controller);
    builder.add(new SimpleExpression(height, Operator.GTE, Int32Type.instance.decompose(182)));
    builder.add(new SimpleExpression(score, Operator.EQ, DoubleType.instance.decompose(1.0d)));
    Assert.assertTrue(builder.complete().satisfiedBy(row, false));
}

[Buggy Hunk]
Unfiltered row = buildRow(new Clustering(UTF8Type.instance.fromString("US"), Int32Type.instance.decompose(27)),

[Patch]
Unfiltered row = buildRow(Clustering.make(UTF8Type.instance.fromString("US"), Int32Type.instance.decompose(27)),