@@ -113,19 +113,17 @@ export function* sendSaveRequestToServer(): Saga<number> {
113113 */
114114
115115 const fullSaveQueue = yield * select ( ( state ) => state . save . queue ) ;
116- const storeSaveQueue = sliceAppropriateBatchCount ( fullSaveQueue ) ;
117- const compactedSaveQueueWithoutVersions = compactSaveQueue ( storeSaveQueue ) ;
116+ const saveQueue = sliceAppropriateBatchCount ( fullSaveQueue ) ;
117+ let compactedSaveQueue = compactSaveQueue ( saveQueue ) ;
118+ const version = yield * select ( ( state ) => state . annotation . version ) ;
118119 const annotationId = yield * select ( ( state ) => state . annotation . annotationId ) ;
119120 const tracingStoreUrl = yield * select ( ( state ) => state . annotation . tracingStore . url ) ;
121+ let versionIncrement ;
122+ [ compactedSaveQueue , versionIncrement ] = addVersionNumbers ( compactedSaveQueue , version ) ;
120123 let retryCount = 0 ;
121124
122125 // This while-loop only exists for the purpose of a retry-mechanism
123126 while ( true ) {
124- const version = yield * select ( ( state ) => state . annotation . version ) ;
125- const [ compactedSaveQueue , versionIncrement ] = addVersionNumbers (
126- compactedSaveQueueWithoutVersions ,
127- version ,
128- ) ;
129127 let exceptionDuringMarkBucketsAsNotDirty = false ;
130128
131129 try {
@@ -155,7 +153,7 @@ export function* sendSaveRequestToServer(): Saga<number> {
155153
156154 yield * put ( setVersionNumberAction ( version + versionIncrement ) ) ;
157155 yield * put ( setLastSaveTimestampAction ( ) ) ;
158- yield * put ( shiftSaveQueueAction ( storeSaveQueue . length ) ) ;
156+ yield * put ( shiftSaveQueueAction ( saveQueue . length ) ) ;
159157
160158 try {
161159 yield * call ( markBucketsAsNotDirty , compactedSaveQueue ) ;
@@ -167,7 +165,7 @@ export function* sendSaveRequestToServer(): Saga<number> {
167165 }
168166
169167 yield * call ( toggleErrorHighlighting , false ) ;
170- return storeSaveQueue . length ;
168+ return saveQueue . length ;
171169 } catch ( error ) {
172170 if ( exceptionDuringMarkBucketsAsNotDirty ) {
173171 throw error ;
@@ -192,9 +190,8 @@ export function* sendSaveRequestToServer(): Saga<number> {
192190 retryCount,
193191 } ) ;
194192
195- // todop: detect actual 409 errors again
196193 // @ts -ignore
197- if ( false && error . status === 409 ) {
194+ if ( error . status === 409 ) {
198195 // HTTP Code 409 'conflict' for dirty state
199196 // @ts -ignore
200197 window . onbeforeunload = null ;
0 commit comments