@Override public final CloseableIteration<? extends Statement, SailException> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException { flushPendingUpdates(); connectionLock.readLock().lock(); try { verifyIsOpen(); boolean registered = false; CloseableIteration<? extends Statement, SailException> iteration = getStatementsInternal(subj, pred, obj, includeInferred, contexts); try { CloseableIteration<? extends Statement, SailException> registeredIteration = registerIteration( iteration); registered = true; return registeredIteration; } finally { if (!registered) { iteration.close(); } } } finally { connectionLock.readLock().unlock(); } }
@Override public final CloseableIteration<? extends Statement, SailException> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException { flushPendingUpdates(); connectionLock.readLock().lock(); try { verifyIsOpen(); boolean registered = false; CloseableIteration<? extends Statement, SailException> iteration = getStatementsInternal(subj, pred, obj, includeInferred, contexts); try { CloseableIteration<? extends Statement, SailException> registeredIteration = registerIteration( iteration); registered = true; return registeredIteration; } finally { if (!registered) { iteration.close(); } } } finally { connectionLock.readLock().unlock(); } }