[Demonstration 1]

[Buggy Method]
public void addDataToSend(byte[] data) {
    writeDataQueue.add(readDataPackage);
    getSelector().wakeup();
}

[Buggy Hunk]
public void addDataToSend(byte[] data){

[Patch]
public synchronized void addDataToSend(byte[] data){

[Demonstration 2]

[Buggy Method]
public void processPacket(byte[] data) throws IOException {
    Logger.debug("Received: " + Util.bs2str(data));
    int connectionId;
    int remotePort;
    int length;
    byte[] buffer;
    byte reason;
    try {
        switch(data[0]) {
            case Constants.TCP_CONNECT:
                connectionId = Util.bs2us(data, 1);
                remotePort = Util.bs2us(data, 3);
                try {
                    tcp.connect(connectionId, getSocketAddress(data, 5, remotePort));
                } catch (UnresolvedAddressException e) {
                    tcp.sendConnect(connectionId, Constants.TCP_CONNECTION_UNKNOWN_HOST, 65535);
                    Logger.warning("Unresolved address received");
                }
                break;
            case Constants.TCP_PACKET:
                connectionId = Util.bs2us(data, 1);
                length = Util.bs2us(data, 3);
                buffer = new byte[length];
                System.arraycopy(data, 5, buffer, 0, length);
                tcp.packet(connectionId, buffer);
                break;
            case Constants.TCP_DISCONNECT:
                connectionId = Util.bs2us(data, 1);
                reason = data[3];
                tcp.disconnect(connectionId, reason);
                break;
            case Constants.UDP_ASSOCIATE:
                //TODO IMPLEMENT
                break;
            case Constants.UDP_PACKET:
                //TODO IMPLEMENT
                break;
            case Constants.UDP_DISSOCIATE:
                //TODO IMPLEMENT
                break;
        }
    } catch (CancelledKeyException e) {
        Logger.warning("Cancelled key whilst processing incoming packet");
    } catch (Exception e) {
        Logger.error("Error occurred");
        Logger.error(e);
    }
}

[Buggy Hunk]
Logger.debug("Received: " + Util.bs2str(data));

[Patch]
Logger.debug("Received: " + Util.dbs2str(data));

[Demonstration 3]

[Buggy Method]
@Test
public void testHBaseStore() throws Exception {
    String storeName = "org.apache.kylin.storage.hbase.HBaseResourceStore";
    ResourceStoreTest.testAStore(storeName, ResourceStoreTest.mockUrl("hbase", kylinConfig), kylinConfig);
}

[Buggy Hunk]
ResourceStoreTest.testAStore(storeName, ResourceStoreTest.mockUrl("hbase", kylinConfig), kylinConfig);

[Patch]
ResourceStoreTest.testAStore(ResourceStoreTest.mockUrl("hbase", kylinConfig), kylinConfig);