private static ByteBuffer ReadDynamic(AbstractDynamicStore store, long reference, ByteBuffer buffer, PageCursor page) { if (buffer == null) { buffer = ByteBuffer.allocate(512); } else { buffer.clear(); } DynamicRecord record = store.NewRecord(); do { //We need to load forcefully here since otherwise we can have inconsistent reads //for properties across blocks, see org.neo4j.graphdb.ConsistentPropertyReadsIT store.GetRecordByCursor(reference, record, RecordLoad.FORCE, page); reference = record.NextBlock; sbyte[] data = record.Data; if (buffer.remaining() < data.Length) { buffer = Grow(buffer, data.Length); } buffer.put(data, 0, data.Length); } while (reference != NO_ID); return(buffer); }