DistributedIntentStore: remove transient state, after transition to parking state
Change-Id: Id0a5bf6a94c03c7eb15d399fd85bf00f4322f6d4
Showing
1 changed file
with
16 additions
and
13 deletions
... | @@ -168,9 +168,9 @@ public class DistributedIntentStore | ... | @@ -168,9 +168,9 @@ public class DistributedIntentStore |
168 | @Override | 168 | @Override |
169 | public IntentEvent setState(Intent intent, IntentState state) { | 169 | public IntentEvent setState(Intent intent, IntentState state) { |
170 | final IntentId id = intent.id(); | 170 | final IntentId id = intent.id(); |
171 | - IntentEvent.Type type = null; | 171 | + IntentEvent.Type evtType = null; |
172 | final IntentState prevParking; | 172 | final IntentState prevParking; |
173 | - boolean transientStateChangeOnly = false; | 173 | + boolean transitionedToParking = true; |
174 | boolean updated; | 174 | boolean updated; |
175 | 175 | ||
176 | // parking state transition | 176 | // parking state transition |
... | @@ -187,7 +187,7 @@ public class DistributedIntentStore | ... | @@ -187,7 +187,7 @@ public class DistributedIntentStore |
187 | updated = states.replace(id, prevParking, SUBMITTED); | 187 | updated = states.replace(id, prevParking, SUBMITTED); |
188 | verify(updated, "Conditional replace %s => %s failed", prevParking, SUBMITTED); | 188 | verify(updated, "Conditional replace %s => %s failed", prevParking, SUBMITTED); |
189 | } | 189 | } |
190 | - type = IntentEvent.Type.SUBMITTED; | 190 | + evtType = IntentEvent.Type.SUBMITTED; |
191 | break; | 191 | break; |
192 | 192 | ||
193 | case INSTALLED: | 193 | case INSTALLED: |
... | @@ -197,14 +197,14 @@ public class DistributedIntentStore | ... | @@ -197,14 +197,14 @@ public class DistributedIntentStore |
197 | prevParking); | 197 | prevParking); |
198 | updated = states.replace(id, prevParking, INSTALLED); | 198 | updated = states.replace(id, prevParking, INSTALLED); |
199 | verify(updated, "Conditional replace %s => %s failed", prevParking, INSTALLED); | 199 | verify(updated, "Conditional replace %s => %s failed", prevParking, INSTALLED); |
200 | - type = IntentEvent.Type.INSTALLED; | 200 | + evtType = IntentEvent.Type.INSTALLED; |
201 | break; | 201 | break; |
202 | 202 | ||
203 | case FAILED: | 203 | case FAILED: |
204 | prevParking = states.get(id); | 204 | prevParking = states.get(id); |
205 | updated = states.replace(id, prevParking, FAILED); | 205 | updated = states.replace(id, prevParking, FAILED); |
206 | verify(updated, "Conditional replace %s => %s failed", prevParking, FAILED); | 206 | verify(updated, "Conditional replace %s => %s failed", prevParking, FAILED); |
207 | - type = IntentEvent.Type.FAILED; | 207 | + evtType = IntentEvent.Type.FAILED; |
208 | break; | 208 | break; |
209 | 209 | ||
210 | case WITHDRAWN: | 210 | case WITHDRAWN: |
... | @@ -214,25 +214,28 @@ public class DistributedIntentStore | ... | @@ -214,25 +214,28 @@ public class DistributedIntentStore |
214 | prevParking); | 214 | prevParking); |
215 | updated = states.replace(id, prevParking, WITHDRAWN); | 215 | updated = states.replace(id, prevParking, WITHDRAWN); |
216 | verify(updated, "Conditional replace %s => %s failed", prevParking, WITHDRAWN); | 216 | verify(updated, "Conditional replace %s => %s failed", prevParking, WITHDRAWN); |
217 | - type = IntentEvent.Type.WITHDRAWN; | 217 | + evtType = IntentEvent.Type.WITHDRAWN; |
218 | break; | 218 | break; |
219 | 219 | ||
220 | default: | 220 | default: |
221 | - transientStateChangeOnly = true; | 221 | + transitionedToParking = false; |
222 | prevParking = null; | 222 | prevParking = null; |
223 | break; | 223 | break; |
224 | } | 224 | } |
225 | - if (!transientStateChangeOnly) { | 225 | + if (transitionedToParking) { |
226 | log.debug("Parking State change: {} {}=>{}", id, prevParking, state); | 226 | log.debug("Parking State change: {} {}=>{}", id, prevParking, state); |
227 | + // remove instance local state | ||
228 | + transientStates.remove(id); | ||
229 | + } else { | ||
230 | + // Update instance local state, which includes non-parking state transition | ||
231 | + final IntentState prevTransient = transientStates.put(id, state); | ||
232 | + log.debug("Transient State change: {} {}=>{}", id, prevTransient, state); | ||
227 | } | 233 | } |
228 | - // Update instance local state, which includes non-parking state transition | ||
229 | - final IntentState prevTransient = transientStates.put(id, state); | ||
230 | - log.debug("Transient State change: {} {}=>{}", id, prevTransient, state); | ||
231 | 234 | ||
232 | - if (type == null) { | 235 | + if (evtType == null) { |
233 | return null; | 236 | return null; |
234 | } | 237 | } |
235 | - return new IntentEvent(type, intent); | 238 | + return new IntentEvent(evtType, intent); |
236 | } | 239 | } |
237 | 240 | ||
238 | @Override | 241 | @Override | ... | ... |
-
Please register or login to post a comment