Fix: next returned a null value at end of stream

This commit is contained in:
Giambattista Bloisi 2024-06-12 13:28:51 +02:00
parent d90cb099b8
commit 9bf2bda1c6
1 changed files with 17 additions and 13 deletions

View File

@ -176,19 +176,6 @@ public class RestIterator implements Iterator<String> {
*/ */
@Override @Override
public boolean hasNext() { public boolean hasNext() {
if (this.recordQueue.isEmpty() && this.query.isEmpty()) {
disconnect();
return false;
}
return true;
}
/*
* (non-Javadoc)
* @see java.util.Iterator#next()
*/
@Override
public String next() {
synchronized (this.recordQueue) { synchronized (this.recordQueue) {
while (this.recordQueue.isEmpty() && !this.query.isEmpty()) { while (this.recordQueue.isEmpty() && !this.query.isEmpty()) {
try { try {
@ -198,6 +185,23 @@ public class RestIterator implements Iterator<String> {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
if (!this.recordQueue.isEmpty()) {
return true;
}
disconnect();
return false;
}
}
/*
* (non-Javadoc)
* @see java.util.Iterator#next()
*/
@Override
public String next() {
synchronized (this.recordQueue) {
return this.recordQueue.poll(); return this.recordQueue.poll();
} }
} }