@Override public Position findNewestMatching(FindPositionConstraint constraint, Predicate<Entry> condition) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedLedgerException exception = null; Position position = null; } final Result result = new Result(); asyncFindNewestMatching(constraint, condition, new FindEntryCallback() { @Override public void findEntryComplete(Position position, Object ctx) { result.position = position; counter.countDown(); } @Override public void findEntryFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); counter.await(); if (result.exception != null) { throw result.exception; } return result.position; }
@Override public Position findNewestMatching(Predicate<Entry> condition) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedLedgerException exception = null; Position position = null; } final Result result = new Result(); asyncFindNewestMatching(FindPositionConstraint.SearchActiveEntries, condition, new FindEntryCallback() { @Override public void findEntryComplete(Position position, Object ctx) { result.position = position; counter.countDown(); } @Override public void findEntryFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); counter.await(); if (result.exception != null) throw result.exception; return result.position; }
@Override public Position findNewestMatching(FindPositionConstraint constraint, Predicate<Entry> condition) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedLedgerException exception = null; Position position = null; } final Result result = new Result(); asyncFindNewestMatching(constraint, condition, new FindEntryCallback() { @Override public void findEntryComplete(Position position, Object ctx) { result.position = position; counter.countDown(); } @Override public void findEntryFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); counter.await(); if (result.exception != null) { throw result.exception; } return result.position; }