diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java index be2ef26721f53f5f9e2f4f9c3b1322ef4eb17d99..a5e855738f834513a3245840a9cb73c9282b5ceb 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java @@ -329,6 +329,7 @@ entity.getLastSeenTimestamp().getTime()); ITopologyService topology = deviceManager.topology; List<AttachmentPoint> oldAPList; List<AttachmentPoint> apList; + boolean oldAPFlag = false; if (!deviceManager.isValidAttachmentPoint(sw, port)) return false; AttachmentPoint newAP = new AttachmentPoint(sw, port, lastSeen); @@ -346,6 +347,7 @@ entity.getLastSeenTimestamp().getTime()); newAP = oldAPList.remove(index); newAP.setLastSeen(lastSeen); this.oldAPs = oldAPList; + oldAPFlag = true; log.debug("DEVICE_MOVE: OldAPs changed for device: {}", oldAPList); } @@ -404,7 +406,8 @@ entity.getLastSeenTimestamp().getTime()); // possible duplicates. oldAPList = new ArrayList<AttachmentPoint>(); if (oldAPs != null) oldAPList.addAll(oldAPs); - oldAPList.add(newAP); + // Add ot oldAPList only if it was picked up from the oldAPList + if (oldAPFlag) oldAPList.add(newAP); log.debug("DEVICE_MOVED: New attachment point {} does not" + " replace already existing one {}.", newAP, oldAP); this.oldAPs = oldAPList;