queue.recordProgress("worker1", taken1.getId(), TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); Assert.assertEquals(TrackingQueue.PossessionState.POSSESSES, queue.recordProgress("worker2", taken2.getId(), TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); Assert.assertEquals(TrackingQueue.PossessionState.NOT_POSSESSES, queue.recordProgress("worker3", taken1.getId(), TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); Assert.assertEquals(TrackingQueue.PossessionState.NOT_POSSESSES, queue.recordProgress("worker3", taken1.getId(), TrackingQueue.ConsumingStatus.FAILED, null)); Assert.assertEquals(TrackingQueue.PossessionState.NOT_POSSESSES, queue.recordProgress("worker3", taken1.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, null)); queue.recordProgress("worker2", taken2.getId(), TrackingQueue.ConsumingStatus.FAILED, null)); Assert.assertEquals(2, getQueuedCount(queue)); Assert.assertEquals(1, Iterators.size(queue.getBeingConsumed())); Assert.assertEquals(TrackingQueue.PossessionState.NOT_POSSESSES, queue.recordProgress("worker2", taken2.getId(), TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); queue.recordProgress("worker1", taken1.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "result-55")); Assert.assertEquals("result-55", workResult1.get()); Assert.assertEquals(TrackingQueue.PossessionState.NOT_POSSESSES, queue.recordProgress("worker1", taken1.getId(), TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); Assert.assertEquals(2, getQueuedCount(queue));