mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
25.06.2012 f134ef63e016bf13b70bef1ec277603b8a9a6f21
opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldif/ConnectionEntryReader.java
@@ -29,7 +29,6 @@
import static org.forgerock.opendj.ldap.ErrorResultException.newErrorResult;
import java.io.InterruptedIOException;
import java.util.NoSuchElementException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
@@ -121,7 +120,6 @@
                // Prevent the reader from waiting for a result that will never
                // arrive.
                isInterrupted = true;
                Thread.currentThread().interrupt();
                return false;
            }
@@ -135,7 +133,6 @@
                // Prevent the reader from waiting for a result that will never
                // arrive.
                isInterrupted = true;
                Thread.currentThread().interrupt();
            }
        }
@@ -149,7 +146,6 @@
                // Prevent the reader from waiting for a result that will never
                // arrive.
                isInterrupted = true;
                Thread.currentThread().interrupt();
                return false;
            }
@@ -163,7 +159,6 @@
                // Prevent the reader from waiting for a result that will never
                // arrive.
                isInterrupted = true;
                Thread.currentThread().interrupt();
            }
        }
@@ -210,7 +205,7 @@
    }
    /**
     * Closes this connection entry reader, cancelling the search request if it
     * Closes this connection entry reader, canceling the search request if it
     * is still active.
     */
    @Override
@@ -223,7 +218,7 @@
     * {@inheritDoc}
     */
    @Override
    public boolean hasNext() throws ErrorResultIOException, InterruptedIOException {
    public boolean hasNext() throws ErrorResultIOException {
        // Poll for the next response if needed.
        final Response r = getNextResponse();
        if (!(r instanceof Result)) {
@@ -251,14 +246,12 @@
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             failed for some reason.
     * @throws InterruptedIOException
     *             If the current thread was interrupted while waiting.
     * @throws NoSuchElementException
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             succeeded.
     */
    public boolean isEntry() throws ErrorResultIOException, InterruptedIOException {
    public boolean isEntry() throws ErrorResultIOException {
        // Throws ErrorResultIOException if search returned error.
        if (!hasNext()) {
            // Search has completed successfully.
@@ -287,14 +280,12 @@
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             failed for some reason.
     * @throws InterruptedIOException
     *             If the current thread was interrupted while waiting.
     * @throws NoSuchElementException
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             succeeded.
     */
    public boolean isReference() throws ErrorResultIOException, InterruptedIOException {
    public boolean isReference() throws ErrorResultIOException {
        return !isEntry();
    }
@@ -314,8 +305,6 @@
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             failed for some reason.
     * @throws InterruptedIOException
     *             If the current thread was interrupted while waiting.
     * @throws NoSuchElementException
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
@@ -323,7 +312,7 @@
     */
    @Override
    public SearchResultEntry readEntry() throws SearchResultReferenceIOException,
            ErrorResultIOException, InterruptedIOException {
            ErrorResultIOException {
        if (isEntry()) {
            final SearchResultEntry entry = (SearchResultEntry) nextResponse;
            nextResponse = null;
@@ -347,15 +336,12 @@
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             failed for some reason.
     * @throws InterruptedIOException
     *             If the current thread was interrupted while waiting.
     * @throws NoSuchElementException
     *             If there are no more search result entries or references and
     *             the search result code indicates that the search operation
     *             succeeded.
     */
    public SearchResultReference readReference() throws ErrorResultIOException,
            InterruptedIOException {
    public SearchResultReference readReference() throws ErrorResultIOException {
        if (isReference()) {
            final SearchResultReference reference = (SearchResultReference) nextResponse;
            nextResponse = null;
@@ -365,12 +351,14 @@
        }
    }
    private Response getNextResponse() throws InterruptedIOException {
    private Response getNextResponse() throws ErrorResultIOException {
        while (nextResponse == null) {
            try {
                nextResponse = buffer.responses.poll(50, TimeUnit.MILLISECONDS);
            } catch (final InterruptedException e) {
                throw new InterruptedIOException(e.getMessage());
                final ErrorResultException ere =
                        newErrorResult(ResultCode.CLIENT_SIDE_USER_CANCELLED, e);
                throw new ErrorResultIOException(ere);
            }
            if (nextResponse == null && buffer.isInterrupted) {