PersistentQueue.remove only rolls the journal if the queue length = 0, journal size >= max journal size, AND open transactions = 0. This will never occur if all removes are transactional and rolling will only occur when the journal size > max journal size * journal overflow. Perhaps a similar check should be performed if the queue length is 0 and nothing is removed? Or perhaps the journal should be rolled even is there are open transactions?
PersistentQueue.remove only rolls the journal if the queue length = 0, journal size >= max journal size, AND open transactions = 0. This will never occur if all removes are transactional and rolling will only occur when the journal size > max journal size * journal overflow. Perhaps a similar check should be performed if the queue length is 0 and nothing is removed? Or perhaps the journal should be rolled even is there are open transactions?