ONOS-1418 Fix for intermittent issue with app store.
Change-Id: I94cb818550825984ec5e70a82a772a6f3bae5b0d
Showing
2 changed files
with
16 additions
and
5 deletions
... | @@ -346,7 +346,7 @@ public class ApplicationArchive | ... | @@ -346,7 +346,7 @@ public class ApplicationArchive |
346 | * @param appName application name | 346 | * @param appName application name |
347 | * @return true if the app descriptor was updated | 347 | * @return true if the app descriptor was updated |
348 | */ | 348 | */ |
349 | - private boolean updateTime(String appName) { | 349 | + protected boolean updateTime(String appName) { |
350 | return appFile(appName, APP_XML).setLastModified(System.currentTimeMillis()); | 350 | return appFile(appName, APP_XML).setLastModified(System.currentTimeMillis()); |
351 | } | 351 | } |
352 | 352 | ... | ... |
... | @@ -172,9 +172,9 @@ public class GossipApplicationStore extends ApplicationArchive | ... | @@ -172,9 +172,9 @@ public class GossipApplicationStore extends ApplicationArchive |
172 | */ | 172 | */ |
173 | private void loadFromDisk() { | 173 | private void loadFromDisk() { |
174 | for (String name : getApplicationNames()) { | 174 | for (String name : getApplicationNames()) { |
175 | - Application app = create(getApplicationDescription(name)); | 175 | + Application app = create(getApplicationDescription(name), false); |
176 | if (app != null && isActive(app.id().name())) { | 176 | if (app != null && isActive(app.id().name())) { |
177 | - activate(app.id()); | 177 | + activate(app.id(), false); |
178 | // load app permissions | 178 | // load app permissions |
179 | } | 179 | } |
180 | } | 180 | } |
... | @@ -224,11 +224,14 @@ public class GossipApplicationStore extends ApplicationArchive | ... | @@ -224,11 +224,14 @@ public class GossipApplicationStore extends ApplicationArchive |
224 | @Override | 224 | @Override |
225 | public Application create(InputStream appDescStream) { | 225 | public Application create(InputStream appDescStream) { |
226 | ApplicationDescription appDesc = saveApplication(appDescStream); | 226 | ApplicationDescription appDesc = saveApplication(appDescStream); |
227 | - return create(appDesc); | 227 | + return create(appDesc, true); |
228 | } | 228 | } |
229 | 229 | ||
230 | - private Application create(ApplicationDescription appDesc) { | 230 | + private Application create(ApplicationDescription appDesc, boolean updateTime) { |
231 | Application app = registerApp(appDesc); | 231 | Application app = registerApp(appDesc); |
232 | + if (updateTime) { | ||
233 | + updateTime(app.id().name()); | ||
234 | + } | ||
232 | apps.put(app.id(), app); | 235 | apps.put(app.id(), app); |
233 | states.put(app, INSTALLED); | 236 | states.put(app, INSTALLED); |
234 | return app; | 237 | return app; |
... | @@ -246,8 +249,15 @@ public class GossipApplicationStore extends ApplicationArchive | ... | @@ -246,8 +249,15 @@ public class GossipApplicationStore extends ApplicationArchive |
246 | 249 | ||
247 | @Override | 250 | @Override |
248 | public void activate(ApplicationId appId) { | 251 | public void activate(ApplicationId appId) { |
252 | + activate(appId, true); | ||
253 | + } | ||
254 | + | ||
255 | + private void activate(ApplicationId appId, boolean updateTime) { | ||
249 | Application app = apps.get(appId); | 256 | Application app = apps.get(appId); |
250 | if (app != null) { | 257 | if (app != null) { |
258 | + if (updateTime) { | ||
259 | + updateTime(appId.name()); | ||
260 | + } | ||
251 | states.put(app, ACTIVATED); | 261 | states.put(app, ACTIVATED); |
252 | } | 262 | } |
253 | } | 263 | } |
... | @@ -256,6 +266,7 @@ public class GossipApplicationStore extends ApplicationArchive | ... | @@ -256,6 +266,7 @@ public class GossipApplicationStore extends ApplicationArchive |
256 | public void deactivate(ApplicationId appId) { | 266 | public void deactivate(ApplicationId appId) { |
257 | Application app = apps.get(appId); | 267 | Application app = apps.get(appId); |
258 | if (app != null) { | 268 | if (app != null) { |
269 | + updateTime(appId.name()); | ||
259 | states.put(app, DEACTIVATED); | 270 | states.put(app, DEACTIVATED); |
260 | } | 271 | } |
261 | } | 272 | } | ... | ... |
-
Please register or login to post a comment