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