default void doWithBufferPair(final int minKeyCapacity,
                                  final int minValueCapacity,
                                  final BiConsumer<ByteBuffer, ByteBuffer> work) {
        try (final PooledByteBuffer pooledKeyByteBuffer = getPooledByteBuffer(minKeyCapacity);
                final PooledByteBuffer pooledValueBuffer = getPooledByteBuffer(minValueCapacity)) {
            work.accept(pooledKeyByteBuffer.getByteBuffer(), pooledValueBuffer.getByteBuffer());
        }
    }
Performs work using a pair of pooled buffers with capacity >= minKeyCapacity and minValueCapacity respectively.
The pooled buffer is returned to the pool on completion of work. The buffers should not be
used/mutated after completion of work.
stroom-bytebuffer/src/main/java/stroom/bytebuffer/ByteBufferPool.java