@Override public void close() { log.sharedLock.lock(); try { delegate.close(); log.unregisterCursor(this); } finally { log.sharedLock.unlock(); } }
@Override public boolean next() throws ChangelogException { log.sharedLock.lock(); try { if (mustAbort) { delegate.close(); delegate = new AbortedLogCursor<>(log.getPath()); mustAbort = false; } return delegate.next(); } finally { log.sharedLock.unlock(); } }