From: Randy Baumgarte Date: Wed, 19 Jan 2011 19:51:25 +0000 (-0500) Subject: Correct sync bug where incorrect high sequence number might be saved when shutting... X-Git-Tag: version0.1.1~218 X-Git-Url: http://git.sourceforge.jp/view?p=neighbornote%2FNeighborNote.git;a=commitdiff_plain;h=5270920f0416ef1f2b3380ca47c1aebae21c9007 Correct sync bug where incorrect high sequence number might be saved when shutting down during a sync. --- diff --git a/src/cx/fbn/nevernote/sql/NoteResourceTable.java b/src/cx/fbn/nevernote/sql/NoteResourceTable.java index 2c262cf..6200444 100644 --- a/src/cx/fbn/nevernote/sql/NoteResourceTable.java +++ b/src/cx/fbn/nevernote/sql/NoteResourceTable.java @@ -511,6 +511,7 @@ public class NoteResourceTable { query.bindValue(":recGuid", r.getGuid()); query.exec(); saveNoteResource(r, isDirty); + query = null; logger.log(logger.HIGH, "Leaving RNoteResourceTable.updateNoteResource"); } // Update note resource GUID diff --git a/src/cx/fbn/nevernote/sql/NoteTable.java b/src/cx/fbn/nevernote/sql/NoteTable.java index 598a648..1d12b07 100644 --- a/src/cx/fbn/nevernote/sql/NoteTable.java +++ b/src/cx/fbn/nevernote/sql/NoteTable.java @@ -120,12 +120,18 @@ public class NoteTable { StringBuilder updated = new StringBuilder(simple.format(n.getUpdated())); StringBuilder deleted = new StringBuilder(simple.format(n.getDeleted())); - EnmlConverter enml = new EnmlConverter(logger); + query.bindValue(":guid", n.getGuid()); query.bindValue(":updateSequenceNumber", n.getUpdateSequenceNum()); query.bindValue(":title", n.getTitle()); - query.bindValue(":content", enml.fixEnXMLCrap(enml.fixEnMediaCrap(n.getContent()))); + if (isDirty) { + EnmlConverter enml = new EnmlConverter(logger); + query.bindValue(":content", enml.fixEnXMLCrap(enml.fixEnMediaCrap(n.getContent()))); + enml = null; + } + else + query.bindValue(":content", n.getContent()); query.bindValue(":contentHash", n.getContentHash()); query.bindValue(":contentLength", n.getContentLength()); query.bindValue(":created", created.toString()); @@ -158,6 +164,12 @@ public class NoteTable { for (int i=0; i 0) { + if (!error && chunk.getChunkHighUSN() > 0 && keepRunning) { logger.log(logger.EXTREME, "emitting sequence number to main thread"); updateSequenceNumber = chunk.getChunkHighUSN(); conn.getSyncTable().setLastSequenceDate(chunk.getCurrentTime()); @@ -1046,6 +1051,7 @@ public class SyncRunner extends QObject implements Runnable { } } + dirtyNoteGuids = null; logger.log(logger.HIGH, "Leaving SyncRunner.syncRemoteToLocal"); } // Sync expunged notes