1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-03-13 07:33:33 +00:00

Prevent race condition

This commit is contained in:
M66B 2019-09-14 19:57:34 +02:00
parent d43afa39e0
commit af997303b5

View file

@ -483,12 +483,6 @@ class Core {
if (target != folder.id)
throw new IllegalArgumentException("Invalid folder");
// Prevent async deletion
if (folder.id.equals(message.folder)) {
if (message.uid != null)
db.message().setMessageUid(message.id, null);
}
// External draft might have a uid only
if (TextUtils.isEmpty(message.msgid)) {
message.msgid = EntityMessage.generateMessageId();
@ -534,8 +528,10 @@ class Core {
ifolder.appendMessages(new Message[]{imessage});
if (folder.id.equals(message.folder)) {
// External draft might have a uid only
if (message.uid != null) {
db.message().setMessageUid(message.id, null);
// External draft might have a uid only
Message iexisting = ifolder.getMessageByUID(message.uid);
if (iexisting == null)
Log.w(folder.name + " existing not found uid=" + message.uid);
@ -567,6 +563,7 @@ class Core {
Log.w(folder.name + " appended msgid=" + message.msgid + " not found");
else {
Log.i(folder.name + " appended uid=" + uid);
db.message().setMessageUid(message.id, uid);
for (Message iexisting : imessages) {
long muid = ifolder.getUID(iexisting);