ProtocolV3.visit() have no implementation to handle incomplete messages over non-blocking socket channel. socketChannel.read(readBuffer) directly update BEFrame 'tag' and 'state' expecting message to be in a complete state.