private void FetchMissingSlotBuffers(Transaction transaction, ArrayList missing, IDictionary buffers, int prefetchDepth) { if (missing.Count == 0) { return; } int safePrefetchDepth = Math.Max(1, prefetchDepth); SendReadMultipleObjectsMessage(Msg.ReadMultipleObjects, transaction, safePrefetchDepth , missing); MsgD response = (MsgD)ExpectedResponse(Msg.ReadMultipleObjects); IEnumerator slots = new CacheContributingObjectReader((ClientTransaction)transaction , _clientSlotCache, response.PayLoad()).Buffers(); while (slots.MoveNext()) { Pair pair = ((Pair)slots.Current); buffers[((int)pair.first)] = ((ByteArrayBuffer)pair.second); } }