@Override public InputRow nextRow() { InputRow next = firehose.nextRow(); if (!beginRejectionPolicy || rejectionPolicy.accept(next.getTimestampFromEpoch())) { return next; } return null; }
@Test public void errorTest() throws InterruptedException { AVar<Throwable> caught = new AVar<>(); Dispatcher asyncDispatcher = new ThreadPoolExecutorDispatcher(2, 100); Firehose<Key, Integer> asyncFirehose = new Firehose<>(asyncDispatcher, consumerRegistry, null, throwable -> caught.set(throwable)); Key k1 = Key.wrap("key1"); asyncFirehose.on( k1, (i) -> { int j = i / 0; }); asyncFirehose.notify(k1, 1); assertTrue(caught.get(1, TimeUnit.MINUTES) instanceof ArithmeticException); asyncDispatcher.shutdown(); }
@Override public void close() throws IOException { firehose.close(); }
@Override public Runnable commit() { return firehose.commit(); }
@Override public boolean hasMore() { return valveOn.get() && firehose.hasMore(); }