Small MODSEQ improvements

pull/194/merge
M66B 4 years ago
parent 59f94e1ab2
commit 919c3efe1c

@ -3148,9 +3148,12 @@ class Core {
try { try {
if (MessageHelper.hasCapability(ifolder, "CONDSTORE")) { if (MessageHelper.hasCapability(ifolder, "CONDSTORE")) {
modseq = ifolder.getHighestModSeq(); modseq = ifolder.getHighestModSeq();
modified = (force || initialize != 0 || modseq < 0 || if (modseq < 0)
modseq = null;
modified = (force || initialize != 0 ||
folder.modseq == null || !folder.modseq.equals(modseq)); folder.modseq == null || !folder.modseq.equals(modseq));
EntityLog.log(context, folder.name + " modseq=" + modseq + "/" + folder.modseq + " modified=" + modified); EntityLog.log(context, folder.name + " modseq=" + modseq + "/" + folder.modseq +
" force=" + force + " init=" + (initialize != 0) + " modified=" + modified);
} }
} catch (MessagingException ex) { } catch (MessagingException ex) {
Log.w(folder.name, ex); Log.w(folder.name, ex);
@ -3277,7 +3280,7 @@ class Core {
else else
Log.w(ex); Log.w(ex);
modified = true; modified = true;
db.folder().setFolderModSeq(folder.id, null); modseq = null;
} }
if (uids.size() > 0) { if (uids.size() > 0) {
@ -3330,6 +3333,7 @@ class Core {
throw ex; throw ex;
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(folder.name, ex); Log.e(folder.name, ex);
modseq = null;
EntityLog.log(context, folder.name + " expunge " + Log.formatThrowable(ex, false)); EntityLog.log(context, folder.name + " expunge " + Log.formatThrowable(ex, false));
db.folder().setFolderError(folder.id, Log.formatThrowable(ex)); db.folder().setFolderError(folder.id, Log.formatThrowable(ex));
} }
@ -3566,11 +3570,13 @@ class Core {
} catch (IOException ex) { } catch (IOException ex) {
if (ex.getCause() instanceof MessagingException) { if (ex.getCause() instanceof MessagingException) {
Log.w(folder.name, ex); Log.w(folder.name, ex);
modseq = null;
db.folder().setFolderError(folder.id, Log.formatThrowable(ex)); db.folder().setFolderError(folder.id, Log.formatThrowable(ex));
} else } else
throw ex; throw ex;
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(folder.name, ex); Log.e(folder.name, ex);
modseq = null;
db.folder().setFolderError(folder.id, Log.formatThrowable(ex)); db.folder().setFolderError(folder.id, Log.formatThrowable(ex));
} finally { } finally {
// Free memory // Free memory
@ -3611,6 +3617,7 @@ class Core {
// Update modseq // Update modseq
folder.modseq = modseq; folder.modseq = modseq;
Log.i(folder.name + " set modseq=" + modseq);
db.folder().setFolderModSeq(folder.id, folder.modseq); db.folder().setFolderModSeq(folder.id, folder.modseq);
// Update stats // Update stats

Loading…
Cancel
Save