@Override public void preRollback() { LOG.debug("Rollback streamState, stateInitialized {}", stateInitialized); statefulWindowedBolt.preRollback(); state.rollback(stateInitialized); if (stateInitialized) { restoreWindowSystemState(); } }
@Test public void testRollbackBeforeInit() throws Exception { executor.preRollback(); Mockito.verify(mockBolt, Mockito.times(1)).preRollback(); // partition ids ArgumentCaptor<String> pkCatptor = ArgumentCaptor.forClass(String.class); Mockito.verify(mockPartitionState, Mockito.times(1)).rollback(); Mockito.verify(mockWindowState, Mockito.times(1)).rollback(); Mockito.verify(mockSystemState, Mockito.times(1)).rollback(); }
@Test public void testRollbackAfterInit() throws Exception { executor.initState(null); executor.prePrepare(0); executor.preRollback(); Mockito.verify(mockBolt, Mockito.times(1)).preRollback(); Mockito.verify(mockPartitionState, Mockito.times(1)).rollback(); ArgumentCaptor<String> stringArgumentCaptor = ArgumentCaptor.forClass(String.class); Mockito.verify(mockPartitionState, Mockito.times(2)).put(stringArgumentCaptor.capture(), partitionValuesCaptor.capture()); Mockito.verify(mockWindowState, Mockito.times(1)).rollback(); Mockito.verify(mockSystemState, Mockito.times(1)).rollback(); Mockito.verify(mockSystemState, Mockito.times(2)).iterator(); }