minor Device - Mastership fixes

Change-Id: Id6d46e22fb67f01cd5c0802cf4fad135a043ec77
diff --git a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
index 6180ada..0989867 100644
--- a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
+++ b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
@@ -269,10 +269,6 @@
 
         @Override
         public void notify(MastershipEvent event) {
-            if (clusterService.getLocalNode().id().equals(event.roleInfo().master())) {
-                log.info("ignoring locally-generated event {}", event);
-               // return;
-            }
             log.info("dispatching mastership event {}", event);
             eventDispatcher.post(event);
         }
diff --git a/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
index 2441e88..e163dc5 100644
--- a/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
@@ -432,7 +432,6 @@
                     if (!isReachable(device)) {
                         log.warn("Device {} has disconnected after this event", did);
                         mastershipService.relinquishMastership(did);
-                        applyRole(did, MastershipRole.STANDBY);
                         return;
                     }
                     //flag the device as online. Is there a better way to do this?
@@ -448,6 +447,7 @@
                 if (!isReachable(getDevice(did))) {
                     log.warn("Device {} has disconnected after this event", did);
                     mastershipService.relinquishMastership(did);
+                    return;
                 }
                 applyRole(did, MastershipRole.STANDBY);
             }
@@ -455,19 +455,21 @@
 
         // checks for duplicate event, returning true if one is found.
         private boolean checkDuplicate(RoleInfo roleInfo, int term) {
-            synchronized (eventCache) {
-                if (eventCache.get(term).contains(roleInfo)) {
-                    log.info("duplicate event detected; ignoring");
-                    return true;
-                } else {
-                    eventCache.put(term, roleInfo);
-                    // purge by-term oldest entries to keep the cache size under limit
-                    if (eventCache.size() > cacheSize) {
-                        eventCache.removeAll(term - cacheSize);
-                    }
-                    return false;
-                }
-            }
+            // turning off duplicate check
+            return false;
+//            synchronized (eventCache) {
+//                if (eventCache.get(term).contains(roleInfo)) {
+//                    log.info("duplicate event detected; ignoring");
+//                    return true;
+//                } else {
+//                    eventCache.put(term, roleInfo);
+//                    // purge by-term oldest entries to keep the cache size under limit
+//                    if (eventCache.size() > cacheSize) {
+//                        eventCache.removeAll(term - cacheSize);
+//                    }
+//                    return false;
+//                }
+//            }
         }
 
     }
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java b/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
index d1917d6..07120fd 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
@@ -358,6 +358,7 @@
 
         @Override
         public void entryAdded(EntryEvent<DeviceId, RoleValue> event) {
+            entryUpdated(event);
         }
 
         @Override
@@ -366,7 +367,6 @@
 
         @Override
         public void entryUpdated(EntryEvent<DeviceId, RoleValue> event) {
-            // this subsumes entryAdded event
             notifyDelegate(new MastershipEvent(
                     MASTER_CHANGED, event.getKey(), event.getValue().roleInfo()));
         }