Fix sync state invalidation bug

This commit is contained in:
Zaid Abdulla committed 2017-06-16 12:10:24 -07:00
1 parent defa0c2d41
commit 9787dd2be7
1 file changed
+8 -16
+8 -16
View File
@@ -569,6 +569,10 @@ rpcRequest = (sessionContext, _declarations, callback) ->
if sessionContext.rpcRequest? if sessionContext.rpcRequest?
return callback(null, null, generateRpcId(sessionContext), sessionContext.rpcRequest) return callback(null, null, generateRpcId(sessionContext), sessionContext.rpcRequest)
if sessionContext.deviceData.changes.has('prerequisite')
delete sessionContext.syncState
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
if sessionContext.virtualParameters.length == 0 and if sessionContext.virtualParameters.length == 0 and
sessionContext.declarations.length == 0 and sessionContext.declarations.length == 0 and
not _declarations?.length and not _declarations?.length and
@@ -680,11 +684,6 @@ rpcRequest = (sessionContext, _declarations, callback) ->
if not provisions if not provisions
sessionContext.rpcRequest = generateGetRpcRequest(sessionContext) sessionContext.rpcRequest = generateGetRpcRequest(sessionContext)
if not sessionContext.rpcRequest if not sessionContext.rpcRequest
if sessionContext.deviceData.changes.has('prerequisite')
delete sessionContext.syncState
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
return rpcRequest(sessionContext, null, callback)
toClear = null toClear = null
timestamp = sessionContext.timestamp + sessionContext.iteration + 1 timestamp = sessionContext.timestamp + sessionContext.iteration + 1
@@ -762,20 +761,12 @@ rpcRequest = (sessionContext, _declarations, callback) ->
toClear = device.set(sessionContext.deviceData, p, timestamp, {value: [timestamp, v]}, toClear) toClear = device.set(sessionContext.deviceData, p, timestamp, {value: [timestamp, v]}, toClear)
) )
if toClear if toClear or sessionContext.deviceData.changes.has('prerequisite')
return clear(sessionContext, toClear, (err) -> return clear(sessionContext, toClear, (err) ->
return callback(err) if err return callback(err) if err
if sessionContext.deviceData.changes.has('prerequisite') rpcRequest(sessionContext, null, callback)
delete sessionContext.syncState
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
return rpcRequest(sessionContext, null, callback)
) )
if sessionContext.deviceData.changes.has('prerequisite')
delete sessionContext.syncState
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
return rpcRequest(sessionContext, null, callback)
provisions = generateSetVirtualParameterProvisions(sessionContext, sessionContext.syncState.virtualParameterDeclarations[inception]) provisions = generateSetVirtualParameterProvisions(sessionContext, sessionContext.syncState.virtualParameterDeclarations[inception])
if not provisions if not provisions
sessionContext.rpcRequest = generateSetRpcRequest(sessionContext) sessionContext.rpcRequest = generateSetRpcRequest(sessionContext)
@@ -816,7 +807,8 @@ rpcRequest = (sessionContext, _declarations, callback) ->
toClear = device.set(sessionContext.deviceData, ['VirtualParameters', vparams[i][0]], timestamp, vpu, toClear) toClear = device.set(sessionContext.deviceData, ['VirtualParameters', vparams[i][0]], timestamp, vpu, toClear)
clear(sessionContext, toClear, (err) -> clear(sessionContext, toClear, (err) ->
return rpcRequest(sessionContext, null, callback) return callback(err) if err
rpcRequest(sessionContext, null, callback)
) )