[Akonadi] [Bug 375146] read -> unread email status changes on server side are never synchronized for IMAP resource

Daniel Vrátil bugzilla_noreply at kde.org
Wed Apr 19 01:33:40 BST 2017


Daniel Vrátil <dvratil at kde.org> changed:

           What    |Removed                     |Added
             Status|CONFIRMED                   |RESOLVED
         Resolution|---                         |FIXED
   Version Fixed In|                            |5.5.1
      Latest Commit|                            |https://commits.kde.org/ako
                   |                            |nadi/e49f49a1eb616b51c22868
                   |                            |53961fe5bcaa4fe758

--- Comment #3 from Daniel Vrátil <dvratil at kde.org> ---
Git commit e49f49a1eb616b51c2286853961fe5bcaa4fe758 by Daniel Vrátil.
Committed on 19/04/2017 at 00:30.
Pushed by dvratil into branch 'Applications/17.04'.

Fix clearing Item flags

For instance when an email is marked as unread on an IMAP server, it
means that the \\SEEN flag is removed. If this was the only flag
set on the email, then Akonadi::ItemSync will end up calling
Akonadi::Item::setFlags() with an empty QSet. When the AKAPPEND handler
is in the MERGE mode and runs into an empty Flags field in the
CreateItemCommand it fallsback to checking AddedFlags and RemovedFlags
fields, but those are empty too.

Akonadi::Item internally tracks when setFlags() is called, even with
an empty QSet through flagsOverwritten flag. With this change the
flag is sent as part of the command to the server and the AKAPPEND
handler now falls back to AddedFlags/RemovedFlags fields only if
the flag is false.

This fixes syncing email flags when email state changes from read to
unread on IMAP, but due to how IMAP emails are synced this will only
affect future changes and will not sync existing out-of-sync emails.
FIXED-IN: 5.5.1

M  +3    -1    autotests/private/protocoltest.cpp
M  +4    -1    src/core/jobs/itemcreatejob.cpp
M  +21   -4    src/private/protocol.cpp
M  +2    -0    src/private/protocol_p.h
M  +1    -1    src/server/handler/akappend.cpp


You are receiving this mail because:
You are on the CC list for the bug.

More information about the Kdepim-bugs mailing list