[Demonstration 1]

[Buggy Method]
@Override
protected Binding<KStream<Object, Object>> doBindProducer(String name, KStream<Object, Object> outboundBindTarget, ExtendedProducerProperties<KStreamProducerProperties> properties) {
    ExtendedProducerProperties<KafkaProducerProperties> extendedProducerProperties = new ExtendedProducerProperties<>(new KStreamProducerProperties());
    BeanUtils.copyProperties(properties, extendedProducerProperties, "extension");
    this.kafkaTopicProvisioner.provisionProducerDestination(name, extendedProducerProperties);
    if (HeaderMode.embeddedHeaders.equals(properties.getHeaderMode())) {
        outboundBindTarget = outboundBindTarget.map(new KeyValueMapper<Object, Object, KeyValue<Object, Object>>() {

            @Override
            public KeyValue<Object, Object> apply(Object k, Object v) {
                if (v instanceof Message) {
                    try {
                        return new KeyValue<>(k, (Object) KStreamBinder.this.serializeAndEmbedHeadersIfApplicable((Message<?>) v));
                    } catch (Exception e) {
                        throw new IllegalArgumentException(e);
                    }
                } else {
                    throw new IllegalArgumentException("Wrong type of message " + v);
                }
            }
        });
    } else {
        if (!properties.isUseNativeEncoding()) {
            outboundBindTarget = outboundBindTarget.map(new KeyValueMapper<Object, Object, KeyValue<Object, Object>>() {

                @Override
                public KeyValue<Object, Object> apply(Object k, Object v) {
                    return KeyValue.pair(k, (Object) KStreamBinder.this.serializePayloadIfNecessary((Message<?>) v));
                }
            });
        } else {
            outboundBindTarget = outboundBindTarget.map(new KeyValueMapper<Object, Object, KeyValue<Object, Object>>() {

                @Override
                public KeyValue<Object, Object> apply(Object k, Object v) {
                    return KeyValue.pair(k, ((Message<?>) v).getPayload());
                }
            });
        }
    }
    if (!properties.isUseNativeEncoding() || StringUtils.hasText(properties.getExtension().getKeySerde()) || StringUtils.hasText(properties.getExtension().getValueSerde())) {
        Serde<?> keySerde = Serdes.ByteArray();
        Serde<?> valueSerde = Serdes.ByteArray();
        try {
            if (StringUtils.hasText(properties.getExtension().getKeySerde())) {
                keySerde = Utils.newInstance(properties.getExtension().getKeySerde(), Serde.class);
                if (keySerde instanceof Configurable) {
                    ((Configurable) keySerde).configure(streamsConfig.originals());
                }
            }
        } catch (ClassNotFoundException e) {
            throw new IllegalStateException("Serde class not found: ", e);
        }
        try {
            if (StringUtils.hasText(properties.getExtension().getValueSerde())) {
                valueSerde = Utils.newInstance(properties.getExtension().getValueSerde(), Serde.class);
                if (valueSerde instanceof Configurable) {
                    ((Configurable) valueSerde).configure(streamsConfig.originals());
                }
            }
        } catch (ClassNotFoundException e) {
            throw new IllegalStateException("Serde class not found: ", e);
        }
        outboundBindTarget.to((Serde<Object>) keySerde, (Serde<Object>) valueSerde, name);
    } else {
        outboundBindTarget.to(name);
    }
    return new DefaultBinding<>(name, null, outboundBindTarget, null);
}

[Buggy Hunk]
ExtendedProducerProperties<KafkaProducerProperties> extendedProducerProperties = new ExtendedProducerProperties<>(new KStreamProducerProperties());

[Patch]
ExtendedProducerProperties<KafkaProducerProperties> extendedProducerProperties = new ExtendedProducerProperties<KafkaProducerProperties>(new KStreamProducerProperties());

[Demonstration 2]

[Buggy Method]
public void setWage(double wage) {
    if (wage < 0) {
        throw new RuntimeException("wage ( + wage + ) should not less than $0");
    }
    this.wage = wage;
}

[Buggy Hunk]
throw new RuntimeException("wage ( + wage + ) should not less than $0");

[Patch]
throw new RuntimeException("wage (" + wage + ") should not less than $0");

[Demonstration 3]

[Buggy Method]
@GET
@Path("/get/{id}")
@Override
public Account getAccount(@PathParam("id") String id) {
    Objects.requireNonNull(id, "Account identifier cannot be null");
    return accountDao.load(id);
}

[Buggy Hunk]
Objects.requireNonNull(id, "Account identifier cannot be null");

[Patch]
Objects.requireNonNull(id, ACCOUNT_IDENTIFIER_CANNOT_BE_NULL);