[ https://issues.apache.org/jira/browse/CASSANDRA-3390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13133063#comment-13133063 ]
Jonathan Ellis commented on CASSANDRA-3390: ------------------------------------------- But we pre-allocate the buffer size: {code} int size = (int) serializer.serializedSize(object, version); DataOutputBuffer buffer = new DataOutputBuffer(size); {code} The point is to avoid copies during buffer re-allocations, so again, this is a good check to have. > ReadResponseSerializer.serializedSize() calculation is wrong > ------------------------------------------------------------ > > Key: CASSANDRA-3390 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3390 > Project: Cassandra > Issue Type: Bug > Affects Versions: 1.0.1 > Reporter: Yang Yang > Fix For: 1.0.1 > > Attachments: 3390.patch > > > in ReadResponse.java > the following code > public long serializedSize(ReadResponse response, int version) > { > int size = DBConstants.intSize; > size += (response.isDigestQuery() ? response.digest() : > ByteBufferUtil.EMPTY_BYTE_BUFFER).remaining(); > size += DBConstants.boolSize; > if (response.isDigestQuery()) > size += response.digest().remaining(); > else > size += Row.serializer().serializedSize(response.row(), version); > return size; > } > adds the digest size 2 times > this triggers assertion error in at least ReadVerbHandler -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira