IMAP: fix range parser

git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@413 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
mguessan 2009-03-03 15:49:42 +00:00
parent 3671222ed9
commit 6bf03bba3a
1 changed files with 8 additions and 3 deletions

View File

@ -922,14 +922,19 @@ public class ImapConnection extends AbstractConnection {
} }
public boolean hasNext() { public boolean hasNext() {
if (currentIndex < messages.size() && messages.get(currentIndex).getUidAsLong() > endUid) { while (currentIndex < messages.size() && messages.get(currentIndex).getUidAsLong() > endUid) {
skipToStartUid(); skipToStartUid();
} }
return currentIndex < messages.size(); return currentIndex < messages.size();
} }
public ExchangeSession.Message next() { public ExchangeSession.Message next() {
return messages.get(currentIndex++); ExchangeSession.Message message = messages.get(currentIndex++);
long uid = message.getUidAsLong();
if (uid < startUid || uid > endUid) {
throw new RuntimeException("Message uid "+uid+ " not in range "+startUid+":"+endUid);
}
return message;
} }
public void remove() { public void remove() {
@ -975,7 +980,7 @@ public class ImapConnection extends AbstractConnection {
} }
public boolean hasNext() { public boolean hasNext() {
if (currentIndex < messages.size() && (currentIndex + 1) > endUid) { while (currentIndex < messages.size() && (currentIndex + 1) > endUid) {
skipToStartUid(); skipToStartUid();
} }
return currentIndex < messages.size(); return currentIndex < messages.size();