@Override
@SuppressFBWarnings(value = {"RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"},
justification = "Findbugs thinks ByteBuf#readerIndex(...) has no"
+ "side effect")
public InsertMessage decode(ByteBuf buffer, RequestBaseMessage requestBaseMessage) throws
InvalidNamespaceException, InvalidBsonException {
try {
MyBsonContext context = new MyBsonContext(buffer);
int flags = buffer.readInt();
String fullCollectionName = stringReader.readCString(buffer, true);
ByteBuf docBuf = buffer.slice(buffer.readerIndex(), buffer.readableBytes());
docBuf.retain();
buffer.readerIndex(buffer.writerIndex());
ByteBufIterableDocumentProvider documents = new ByteBufIterableDocumentProvider(docBuf,
docReader);
return new InsertMessage(
requestBaseMessage,
context,
getDatabase(fullCollectionName).intern(),
getCollection(fullCollectionName).intern(),
EnumInt32FlagsUtil.isActive(Flag.CONTINUE_ON_ERROR, flags),
documents
);
} catch (NettyBsonReaderException ex) {
throw new InvalidBsonException(ex);
}
}