[Demonstration 1]

[Buggy Method]
@Override
public String toString() {
    return NodeID.toHexString(m_nodeId) + ", " + m_dataInterestAvailable.get() + ", " + m_dataInterestAvailable.get() + ", " + m_interestAcquired.get();
}

[Buggy Hunk]
return NodeID.toHexString(m_nodeId) + ", " + m_dataInterestAvailable.get() + ", " + m_dataInterestAvailable.get() + ", " + m_interestAcquired.get();

[Patch]
return NodeID.toHexString(m_nodeId) + ", " + m_dataInterestAvailable + ", " + m_dataInterestAvailable + ", " + m_interestAcquired.get();

[Demonstration 2]

[Buggy Method]
@Override
protected void initChannel(final SocketChannel ch) throws Exception {
    ch.pipeline().addLast(new TimeClientHandler());
}

[Buggy Hunk]
ch.pipeline().addLast(new TimeClientHandler());

[Patch]
ch.pipeline().addLast(new TimeDecoder(), new TimeClientHandler());

[Demonstration 3]

[Buggy Method]
@Override
protected void initChannel(SocketChannel ch) throws Exception {
    ch.pipeline().addLast(new LineBasedFrameDecoder(1000));
    ch.pipeline().addLast(new StringDecoder());
    ch.pipeline().addLast(new StringEncoder());
    ch.pipeline().addLast(new EchoServerHandler());
}

[Buggy Hunk]
ch.pipeline().addLast(new LineBasedFrameDecoder(1000));

[Patch]
ch.pipeline().addLast(new DelimiterBasedFrameDecoder(1000, Delimiters.lineDelimiter()));