[ONOS-7288] Fix race condition of device manager
Change-Id: I38aaae701e96f1114177e619c6f30e1b79f0134a
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index d7869bb..4ef0884 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -534,14 +534,15 @@
PortDescriptionsConfig portConfig = networkConfigService.getConfig(deviceId, PortDescriptionsConfig.class);
// Generate updated description and establish my Role
deviceDescription = BasicDeviceOperator.combine(cfg, deviceDescription);
+
+ DeviceEvent event = store.createOrUpdateDevice(provider().id(), deviceId,
+ deviceDescription);
Futures.getUnchecked(mastershipService.requestRoleFor(deviceId)
.thenAccept(role -> {
log.info("Local role is {} for {}", role, deviceId);
applyRole(deviceId, role);
}));
- DeviceEvent event = store.createOrUpdateDevice(provider().id(), deviceId,
- deviceDescription);
if (portConfig != null) {
//updating the ports if configration exists
List<PortDescription> complete = store.getPortDescriptions(provider().id(), deviceId)