base/common/src/main/com/thesett/common/util/queues/Queues.java
public static <E> Queue<E> getTransactionalReQueue(java.util.Queue<E> queue, Collection<E> requeue)
    {
        return new WrapperQueue<E>(queue, requeue, true, false, false);
    }
public static <E> Queue<E> getTransactionalReQueue(java.util.Queue<E> queue, Collection<E> requeue)
    {
        return new WrapperQueue<E>(queue, requeue, true, false, false);
    }
Provides a transactional requeue, that delays all queue manipulation operations until the transaction is
committed, or erases them if it is rolled back. As this is a requeue, the requeue buffer may be examined directly
and the queue fully supports browsing with iterators.

@param  queue   The queue to use as the underlying queue implementation for the requeue.
@param  requeue The collection to use for the requeue buffer.
@param  <E>     The type of queue element.

@return A transactional requeue.