From ab4a48203922bb98b16bbe999466714f88007cce Mon Sep 17 00:00:00 2001 From: mguessan Date: Thu, 10 Oct 2013 20:38:27 +0000 Subject: [PATCH] IMAP: improve uidNext implementation git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@2186 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/exchange/ExchangeSession.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index 92bd7c48..2da6113d 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -1373,6 +1373,9 @@ public abstract class ExchangeSession { currentFolder.unreadCount = newFolder.unreadCount; currentFolder.ctag = newFolder.ctag; currentFolder.etag = newFolder.etag; + if (newFolder.uidNext > currentFolder.uidNext) { + currentFolder.uidNext = newFolder.uidNext; + } currentFolder.loadMessages(); return true; } else { @@ -1582,7 +1585,7 @@ public abstract class ExchangeSession { /** * Next IMAP uid */ - public int uidNext; + public long uidNext; /** * recent count */ @@ -1626,6 +1629,10 @@ public abstract class ExchangeSession { recent++; } } + long computedUidNext = messages.get(messages.size() - 1).getImapUid() + 1; + if (computedUidNext > uidNext) { + uidNext = computedUidNext; + } } /** @@ -1685,7 +1692,7 @@ public abstract class ExchangeSession { * @return max(messageuids)+1 */ public long getUidNext() { - return messages.get(messages.size() - 1).getImapUid() + 1; + return uidNext; } /**