OSDN Git Service

Disable transactions in sync thread to prevent deadlocks.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / threads / SyncRunner.java
index 61a90bb..582f902 100644 (file)
@@ -136,6 +136,8 @@ public class SyncRunner extends QObject implements Runnable {
                private static int MAX_QUEUED_WAITING = 1000;\r
                String dbuid;\r
                String dburl;\r
+               String indexUrl;\r
+               String resourceUrl;\r
                String dbpswd;\r
                String dbcpswd;\r
                private final TreeSet<String> ignoreTags;\r
@@ -144,7 +146,7 @@ public class SyncRunner extends QObject implements Runnable {
        \r
                \r
                \r
-       public SyncRunner(String logname, String u, String uid, String pswd, String cpswd) {\r
+       public SyncRunner(String logname, String u, String i, String r, String uid, String pswd, String cpswd) {\r
                logger = new ApplicationLogger(logname);\r
                \r
                noteSignal = new NoteSignal();\r
@@ -156,6 +158,8 @@ public class SyncRunner extends QObject implements Runnable {
                searchSignal = new SavedSearchSignal();\r
                syncSignal = new SyncSignal();\r
                resourceSignal = new NoteResourceSignal();\r
+               resourceUrl = r;\r
+               indexUrl = i;\r
                dbuid = uid;\r
                dburl = u;\r
                dbpswd = pswd;\r
@@ -167,9 +171,6 @@ public class SyncRunner extends QObject implements Runnable {
                authRefreshNeeded = false;\r
                keepRunning = true;\r
                idle = true;\r
-               noteStore = null;\r
-               userStore = null;\r
-               authToken = null;\r
                disableUploads = false;\r
                ignoreTags = new TreeSet<String>();\r
                ignoreNotebooks = new TreeSet<String>();\r
@@ -182,7 +183,7 @@ public class SyncRunner extends QObject implements Runnable {
        public void run() {\r
                try {\r
                        logger.log(logger.EXTREME, "Starting thread");\r
-                       conn = new DatabaseConnection(logger, dburl, dbuid, dbpswd, dbcpswd, 200);\r
+                       conn = new DatabaseConnection(logger, dburl, indexUrl, resourceUrl, dbuid, dbpswd, dbcpswd, 200);\r
                        while(keepRunning) {\r
                                String work = workQueue.take();\r
                                logger.log(logger.EXTREME, "Work found: " +work);\r
@@ -207,7 +208,6 @@ public class SyncRunner extends QObject implements Runnable {
                                                status.message.emit(e.getMessage());\r
                                        }\r
                                }\r
-                               dirtyNoteGuids = null;\r
                                idle=true;\r
                                logger.log(logger.EXTREME, "Signaling refresh finished.  refreshNeeded=" +refreshNeeded);\r
                                syncSignal.finished.emit(refreshNeeded);\r
@@ -740,7 +740,6 @@ public class SyncRunner extends QObject implements Runnable {
                                error = true;\r
                        }               \r
                }\r
-               remoteList = null;\r
                logger.log(logger.HIGH, "Leaving SyncRunner.syncLocalNotebooks");\r
 \r
        }\r
@@ -837,7 +836,6 @@ public class SyncRunner extends QObject implements Runnable {
                        enTag = findNextTag();\r
                }\r
                logger.log(logger.HIGH, "Leaving SyncRunner.syncLocalTags");\r
-               remoteList = null;\r
        }\r
        private void syncLocalLinkedNotebooks() {\r
                logger.log(logger.HIGH, "Entering SyncRunner.syncLocalLinkedNotebooks");\r
@@ -962,9 +960,7 @@ public class SyncRunner extends QObject implements Runnable {
                                error = true;\r
                        }               \r
                }\r
-               \r
-               remoteList = null;\r
-               searches = null;\r
+\r
                logger.log(logger.HIGH, "Entering SyncRunner.syncLocalSavedSearches");\r
        }       \r
 \r
@@ -994,9 +990,9 @@ public class SyncRunner extends QObject implements Runnable {
                                if (!refreshConnection())\r
                                        return;\r
                        \r
-                       chunk = null;\r
                        int sequence = updateSequenceNumber;\r
                        try {\r
+//                             conn.beginTransaction();\r
                                logger.log(logger.EXTREME, "Getting chunk from Evernote");\r
                                chunk = noteStore.getSyncChunk(authToken, sequence, chunkSize, fullSync);\r
                        } catch (EDAMUserException e) {\r
@@ -1040,6 +1036,7 @@ public class SyncRunner extends QObject implements Runnable {
                                updateSequenceNumber = chunk.getChunkHighUSN();\r
                                conn.getSyncTable().setLastSequenceDate(chunk.getCurrentTime());\r
                                conn.getSyncTable().setUpdateSequenceNumber(updateSequenceNumber);\r
+//                             conn.commitTransaction();\r
                        }\r
                        \r
                        \r
@@ -1049,9 +1046,8 @@ public class SyncRunner extends QObject implements Runnable {
                                pct = pct/evernoteUpdateCount;\r
                                status.message.emit(tr("Downloading ") +new Long(pct).toString()+tr("% complete."));\r
                        }\r
+//                     conn.commitTransaction();\r
                }\r
-\r
-               dirtyNoteGuids = null;\r
                logger.log(logger.HIGH, "Leaving SyncRunner.syncRemoteToLocal");\r
        }\r
        // Sync expunged notes\r