@Override public void close() throws InterruptedException, ManagedLedgerException { class Result { ManagedLedgerException exception = null; } final Result result = new Result(); final CountDownLatch latch = new CountDownLatch(1); asyncClose(new AsyncCallbacks.CloseCallback() { @Override public void closeComplete(Object ctx) { if (log.isDebugEnabled()) { log.debug("[{}] Successfully closed ledger for cursor {}", ledger.getName(), name); } latch.countDown(); } @Override public void closeFailed(ManagedLedgerException exception, Object ctx) { log.warn("[{}] Closing ledger failed for cursor {}", ledger.getName(), name, exception); result.exception = exception; latch.countDown(); } }, null); if (!latch.await(ManagedLedgerImpl.AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during close operation"); } if (result.exception != null) { throw result.exception; } }
@Override public void close() throws InterruptedException, ManagedLedgerException { class Result { ManagedLedgerException exception = null; } final Result result = new Result(); final CountDownLatch latch = new CountDownLatch(1); asyncClose(new AsyncCallbacks.CloseCallback() { @Override public void closeComplete(Object ctx) { if (log.isDebugEnabled()) { log.debug("[{}] Successfully closed ledger for cursor {}", ledger.getName(), name); } latch.countDown(); } @Override public void closeFailed(ManagedLedgerException exception, Object ctx) { log.warn("[{}] Closing ledger failed for cursor {}", ledger.getName(), name, exception); result.exception = exception; latch.countDown(); } }, null); if (!latch.await(ManagedLedgerImpl.AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during close operation"); } if (result.exception != null) { throw result.exception; } }
@Override public void close() throws InterruptedException, ManagedLedgerException { class Result { ManagedLedgerException exception = null; } final Result result = new Result(); final CountDownLatch latch = new CountDownLatch(1); asyncClose(new AsyncCallbacks.CloseCallback() { @Override public void closeComplete(Object ctx) { if (log.isDebugEnabled()) { log.debug("[{}] Successfully closed ledger for cursor {}", ledger.getName(), name); } latch.countDown(); } @Override public void closeFailed(ManagedLedgerException exception, Object ctx) { log.warn("[{}] Closing ledger failed for cursor {}", ledger.getName(), name, exception); result.exception = exception; latch.countDown(); } }, null); if (!latch.await(ManagedLedgerImpl.AsyncOperationTimeoutSeconds, TimeUnit.SECONDS)) { throw new ManagedLedgerException("Timeout during close operation"); } if (result.exception != null) { throw result.exception; } }