@Override public synchronized void asyncOpenCursor(final String cursorName, final OpenCursorCallback callback, Object ctx) { this.asyncOpenCursor(cursorName, InitialPosition.Latest, callback, ctx); }
@Override public ManagedCursor openCursor(String cursorName, InitialPosition initialPosition) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedCursor cursor = null; ManagedLedgerException exception = null; } final Result result = new Result(); asyncOpenCursor(cursorName, initialPosition, new OpenCursorCallback() { @Override public void openCursorComplete(ManagedCursor cursor, Object ctx) { result.cursor = cursor; counter.countDown(); } @Override public void openCursorFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); if (!counter.await(AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during open-cursor operation"); } if (result.exception != null) { log.error("Error adding entry", result.exception); throw result.exception; } return result.cursor; }
} catch (Exception e) { ledger.asyncOpenCursor("c1", new OpenCursorCallback() { } catch (Exception e) { ledger.asyncOpenCursor("c1", new OpenCursorCallback() {
@Override public synchronized void asyncOpenCursor(final String cursorName, final OpenCursorCallback callback, Object ctx){ this.asyncOpenCursor(cursorName, InitialPosition.Latest, callback, ctx); }
@Override public ManagedCursor openCursor(String cursorName, InitialPosition initialPosition) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedCursor cursor = null; ManagedLedgerException exception = null; } final Result result = new Result(); asyncOpenCursor(cursorName, initialPosition, new OpenCursorCallback() { @Override public void openCursorComplete(ManagedCursor cursor, Object ctx) { result.cursor = cursor; counter.countDown(); } @Override public void openCursorFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); if (!counter.await(AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during open-cursor operation"); } if (result.exception != null) { log.error("Error adding entry", result.exception); throw result.exception; } return result.cursor; }
@Override public ManagedCursor openCursor(String cursorName) throws InterruptedException, ManagedLedgerException { final CountDownLatch counter = new CountDownLatch(1); class Result { ManagedCursor cursor = null; ManagedLedgerException exception = null; } final Result result = new Result(); asyncOpenCursor(cursorName, new OpenCursorCallback() { @Override public void openCursorComplete(ManagedCursor cursor, Object ctx) { result.cursor = cursor; counter.countDown(); } @Override public void openCursorFailed(ManagedLedgerException exception, Object ctx) { result.exception = exception; counter.countDown(); } }, null); if (!counter.await(AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during open-cursor operation"); } if (result.exception != null) { log.error("Error adding entry", result.exception); throw result.exception; } return result.cursor; }