From bd85f785a23aecd6bb5e929b31a971cd698593a8 Mon Sep 17 00:00:00 2001 From: Jonathan Hart Date: Mon, 20 Jun 2016 16:13:37 -0700 Subject: [PATCH] Fix for app dependency loading order issue Change-Id: Ic4210644bb4a7c433c6e4bd6a33136d2bdfe1e5a (cherry picked from commit e09b71ab0e8cf7f648f345cfa257f24e62804bf9) --- .../store/app/DistributedApplicationStore.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/core/store/dist/src/main/java/org/onosproject/store/app/DistributedApplicationStore.java b/core/store/dist/src/main/java/org/onosproject/store/app/DistributedApplicationStore.java index 027e1a096b..3c5447af2e 100644 --- a/core/store/dist/src/main/java/org/onosproject/store/app/DistributedApplicationStore.java +++ b/core/store/dist/src/main/java/org/onosproject/store/app/DistributedApplicationStore.java @@ -335,18 +335,17 @@ public class DistributedApplicationStore extends ApplicationArchive private void activate(ApplicationId appId, boolean updateTime) { - AtomicBoolean stateChanged = new AtomicBoolean(false); - InternalApplicationHolder appHolder = Versioned.valueOrNull(apps.computeIf(appId, - v -> v != null && v.state() != ACTIVATED, - (k, v) -> { - stateChanged.set(true); - return new InternalApplicationHolder(v.app(), ACTIVATED, v.permissions()); - })); - if (stateChanged.get()) { + Versioned vAppHolder = apps.get(appId); + if (vAppHolder != null) { if (updateTime) { updateTime(appId.name()); } - activateRequiredApps(appHolder.app()); + activateRequiredApps(vAppHolder.value().app()); + + apps.computeIf(appId, v -> v != null && v.state() != ACTIVATED, + (k, v) -> new InternalApplicationHolder( + v.app(), ACTIVATED, v.permissions())); + } }