diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java index e654a6e798804a7469e0433acf62475d87563995..afbbb57d4e822d25fb991ba11f5f24844ef54d7d 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java @@ -103,6 +103,16 @@ public class Device implements IDevice { List<AttachmentPoint>oldAP = new ArrayList<AttachmentPoint>(attachmentPoints); + // Remove invalid attachment points before sorting. + List<AttachmentPoint>tempAP = + new ArrayList<AttachmentPoint>(); + for(AttachmentPoint ap: oldAP) { + if (deviceManager.isValidAttachmentPoint(ap.getSw(), ap.getPort())){ + tempAP.add(ap); + } + } + oldAP = tempAP; + Collections.sort(oldAP, deviceManager.apComparator); // Map of attachment point by L2 domain Id.