private static <T, E extends Exception> ImmutableSet<T> setFromExceptionalIterator( ExceptionalIterator<T, E> iterator) throws E { ImmutableSet.Builder<T> builder = ImmutableSet.builder(); while(iterator.hasNext()) { builder.add(iterator.next()); } return builder.build(); } }
private static <T, E extends Exception> ImmutableSet<T> setFromExceptionalIterator( ExceptionalIterator<T, E> iterator) throws E { ImmutableSet.Builder<T> builder = ImmutableSet.builder(); while(iterator.hasNext()) { builder.add(iterator.next()); } return builder.build(); } }
/** * Loads all wavelets from storage. * * @throws WaveletStateException if storage access fails. */ public void loadAllWavelets() throws WaveletStateException { try { ExceptionalIterator<WaveId, PersistenceException> itr = store.getWaveIdIterator(); while (itr.hasNext()) { WaveId waveId = itr.next(); lookupWavelets(waveId); } } catch (PersistenceException e) { throw new WaveletStateException("Failed to scan waves", e); } }
public void testFromIteratorNoException() throws Exception { ExceptionalIterator<Integer, Exception> itr = ExceptionalIterator.FromIterator.create(items.iterator()); assertTrue(itr.hasNext()); assertEquals(Integer.valueOf(1), itr.next()); assertEquals(Integer.valueOf(2), itr.next()); assertEquals(Integer.valueOf(3), itr.next()); assertFalse(itr.hasNext()); }
public void testFromIteratorNoException() throws Exception { ExceptionalIterator<Integer, Exception> itr = ExceptionalIterator.FromIterator.create(items.iterator()); assertTrue(itr.hasNext()); assertEquals(Integer.valueOf(1), itr.next()); assertEquals(Integer.valueOf(2), itr.next()); assertEquals(Integer.valueOf(3), itr.next()); assertFalse(itr.hasNext()); }
public void testFromIteratorWithException() throws Exception { Exception ex = new Exception("for testing"); ExceptionalIterator<Integer, Exception> itr = ExceptionalIterator.FromIterator.create(items.iterator(), ex); assertTrue(itr.hasNext()); assertEquals(Integer.valueOf(1), itr.next()); assertEquals(Integer.valueOf(2), itr.next()); assertEquals(Integer.valueOf(3), itr.next()); try { itr.hasNext(); fail("Expected an exception"); } catch (Exception e) { assertSame(ex, e); } } }
public void testFromIteratorWithException() throws Exception { Exception ex = new Exception("for testing"); ExceptionalIterator<Integer, Exception> itr = ExceptionalIterator.FromIterator.create(items.iterator(), ex); assertTrue(itr.hasNext()); assertEquals(Integer.valueOf(1), itr.next()); assertEquals(Integer.valueOf(2), itr.next()); assertEquals(Integer.valueOf(3), itr.next()); try { itr.hasNext(); fail("Expected an exception"); } catch (Exception e) { assertSame(ex, e); } } }
WaveId waveId = srcItr.next();
/** * Forces all waves to be loaded into memory and processes each wavelet. */ @Override public synchronized void remakeIndex() throws WaveletStateException, WaveServerException { waveMap.loadAllWavelets(); ExceptionalIterator<WaveId, WaveServerException> witr = waveletProvider.getWaveIds(); while (witr.hasNext()) { WaveId waveId = witr.next(); for (WaveletId waveletId : waveletProvider.getWaveletIds(waveId)) { WaveletName waveletName = WaveletName.of(waveId, waveletId); // Required to call this method to load the wavelet into memory. waveletProvider.getSnapshot(waveletName); processWavelet(waveletName); } } }
public void testWaveAvailableAfterLoad() throws PersistenceException, WaveServerException { when(waveletStore.getWaveIdIterator()).thenReturn(eitr(WAVE_ID)); waveMap.loadAllWavelets(); ExceptionalIterator<WaveId, WaveServerException> waves = waveMap.getWaveIds(); assertTrue(waves.hasNext()); assertEquals(WAVE_ID, waves.next()); }
public void testWaveAvailableAfterLoad() throws PersistenceException, WaveServerException { when(waveletStore.getWaveIdIterator()).thenReturn(eitr(WAVE_ID)); waveMap.loadAllWavelets(); ExceptionalIterator<WaveId, WaveServerException> waves = waveMap.getWaveIds(); assertTrue(waves.hasNext()); assertEquals(WAVE_ID, waves.next()); }
public void testWaveIdsList() throws WaveServerException { waveMap.getOrCreateLocalWavelet(WAVELET_NAME); ExceptionalIterator<WaveId, WaveServerException> waves = waveServer.getWaveIds(); assertTrue(waves.hasNext()); assertEquals(WAVE_ID, waves.next()); }
public void testWaveIdsList() throws WaveServerException { waveMap.getOrCreateLocalWavelet(WAVELET_NAME); ExceptionalIterator<WaveId, WaveServerException> waves = waveServer.getWaveIds(); assertTrue(waves.hasNext()); assertEquals(WAVE_ID, waves.next()); }
public void testWaveIdIteratorLimits() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; DeltasAccess wavelet = store.open(WAVE2_WAVELET1); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); ExceptionalIterator<WaveId, PersistenceException> iterator = store.getWaveIdIterator(); assertTrue(iterator.hasNext()); WaveId waveId1 = iterator.next(); assertTrue(iterator.hasNext()); WaveId waveId2 = iterator.next(); // This is necessary because the order of waveIds is implementation specific. if (WAVE1_WAVELET1.waveId.equals(waveId1)) { assertEquals(WAVE2_WAVELET1.waveId, waveId2); } else { assertEquals(WAVE2_WAVELET1.waveId, waveId1); assertEquals(WAVE1_WAVELET1.waveId, waveId2); } assertFalse(iterator.hasNext()); try { waveId1 = iterator.next(); // Fail the test, it should have thrown an exception. fail(); } catch (NoSuchElementException e) { // Test passes. } }
public void testWaveIdIteratorLimits() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; DeltasAccess wavelet = store.open(WAVE2_WAVELET1); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); ExceptionalIterator<WaveId, PersistenceException> iterator = store.getWaveIdIterator(); assertTrue(iterator.hasNext()); WaveId waveId1 = iterator.next(); assertTrue(iterator.hasNext()); WaveId waveId2 = iterator.next(); // This is necessary because the order of waveIds is implementation specific. if (WAVE1_WAVELET1.waveId.equals(waveId1)) { assertEquals(WAVE2_WAVELET1.waveId, waveId2); } else { assertEquals(WAVE2_WAVELET1.waveId, waveId1); assertEquals(WAVE1_WAVELET1.waveId, waveId2); } assertFalse(iterator.hasNext()); try { waveId1 = iterator.next(); // Fail the test, it should have thrown an exception. fail(); } catch (NoSuchElementException e) { // Test passes. } }