Thanks for the clarification. -if (errorCode == ErrorMapping.NoError) { - coordinator.get.writeTo(buffer)
The removal of the "if" statement would fix the issue but the patch changes other things that I can't say much about as I don't know scala. /svante 2014-05-12 17:25 GMT+02:00 Guozhang Wang <wangg...@gmail.com>: > Hi Svante, > > This is indeed an issue with the protocol definition of > ConsumerMetadataResponse. Do you think this issue is fixed in the following > JIRA? > > https://issues.apache.org/jira/browse/KAFKA-1437 > > Guozhang > > > On Mon, May 12, 2014 at 1:10 AM, svante karlsson <s...@csi.se> wrote: > > > I'm writing (yet another) C++ binding for kafka and I'm curious on the > > encoding in relation to error-code != 0 > > > > There seems to be a discrepancy as to how to decode messages in presence > of > > errors. > > > > ConsumerMetadataResponse error_code !=0 -> no more data should be > decoded. > > > > in all others we continue parsing of the rest of the message. Is this > > assumption correct? > > > > ie. > > > > ProduceResponse... offset should always be decoded > > > > FetchResponse highwater_mark_offset, message_set_size and > > corresponding message should be decoded (most likely 0 size) > > > > OffsetResponse: offsets array should be decoded (guessing 0 size > or > > NULL) > > > > MetadataResponse topic_data::error-code and > partition-data::error_code, > > the rest of the message should be decoded. > > > > > > /svante > > > > > > -- > -- Guozhang >