ProducerListeners listeners() {
        return new ProducerListeners(eventListeners.toArray(new HollowProducerEventListener[0]));
    }
@Test
    public void fireProducerRestoreStartDontStopWhenOneFails() {
        long version = 31337;
        HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class);
        Mockito.when(readState.getVersion()).thenReturn(version);
        Mockito.doThrow(RuntimeException.class).when(listener).onProducerRestoreStart(version);
        Status.RestoreStageBuilder b = new Status.RestoreStageBuilder();
        listenerSupport.listeners().fireProducerRestoreComplete(b);
        ArgumentCaptor<Status> status = ArgumentCaptor.forClass(
                Status.class);
        ArgumentCaptor<Long> desired = ArgumentCaptor.forClass(
                long.class);
        ArgumentCaptor<Long> reached = ArgumentCaptor.forClass(
                long.class);
        ArgumentCaptor<Duration> elapsed = ArgumentCaptor.forClass(
                Duration.class);
        Mockito.verify(listener).onProducerRestoreComplete(status.capture(), desired.capture(), reached.capture(), elapsed.capture());
        Assert.assertNotNull(status.getValue());
        Assert.assertNotNull(elapsed.getValue());
    }