diff --git a/.gitignore b/.gitignore index 638f2ea666d0127a1cd5c45673558ed9074cc950..1205d8a1aee3d42aa13e0789222f04dca116f4cd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ target thrift *.swp *.pyc +findbugs-results diff --git a/build.xml b/build.xml index c28b90b5fda6d0782f2c01a5b299142f8b03e901..cc45e43ca1cdcb87492d0bc0f0a0ffef9bb71dce 100644 --- a/build.xml +++ b/build.xml @@ -46,6 +46,8 @@ <property name="thrift.package" value="net/floodlightcontroller/packetstreamer/thrift"/> <property name="ant.build.javac.source" value="1.6"/> <property name="ant.build.javac.target" value="1.6"/> + <property name="findbugs.home" value="../build/findbugs-2.0.2"/> + <property name="findbugs.results" value="findbugs-results" /> <property name="lib" location="lib"/> <patternset id="lib"> @@ -276,4 +278,34 @@ </exec> </target> + <target name="findbugs-xml" depends="init,compile"> + <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.home}/lib/findbugs-ant.jar"/> + <mkdir dir="${findbugs.results}"/> + <findbugs home="${findbugs.home}" + output="xml" + outputFile="${findbugs.results}/results.xml" > + <sourcePath path="${source}" /> + <sourcePath path="${thrift.out.dir}" /> + <class location="${build}" /> + <auxClasspath> + <path refid="classpath" /> + </auxClasspath> + </findbugs> + </target> + + <target name="findbugs" depends="init,compile"> + <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.home}/lib/findbugs-ant.jar"/> + <mkdir dir="${findbugs.results}"/> + <findbugs home="${findbugs.home}" + output="html" + outputFile="${findbugs.results}/results.html" > + <sourcePath path="${source}" /> + <sourcePath path="${thrift.out.dir}" /> + <class location="${build}" /> + <auxClasspath> + <path refid="classpath" /> + </auxClasspath> + </findbugs> + </target> + </project> diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java index 19cc0271bc38381ea4ff769e1f4a16200669f80a..9d59caac4a54fc004dd42ff70c209527ae2d9377 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java @@ -458,11 +458,14 @@ entity.getLastSeenTimestamp().getTime()); } else if (oldAPFlag) { // retain oldAP as is. Put the newAP in oldAPs for flagging // possible duplicates. - oldAPList = new ArrayList<AttachmentPoint>(); - if (oldAPs != null) oldAPList.addAll(oldAPs); - // Add ot oldAPList only if it was picked up from the oldAPList - oldAPList.add(newAP); - this.oldAPs = oldAPList; + oldAPList = new ArrayList<AttachmentPoint>(); + if (oldAPs != null) oldAPList.addAll(oldAPs); + // Add to oldAPList only if it was picked up from the oldAPList + oldAPList.add(newAP); + this.oldAPs = oldAPList; + if (!topology.isInSameBroadcastDomain(oldAP.getSw(), oldAP.getPort(), + newAP.getSw(), newAP.getPort())) + return true; // attachment point changed. } return false; }