Fix for bug#2861: areObjectsEqual doesn't check if storedMatch==null. 38/16738/1
authorKeith Burns (alagalah) <alagalah@gmail.com>
Wed, 18 Mar 2015 02:58:10 +0000 (19:58 -0700)
committerKeith Burns (alagalah) <alagalah@gmail.com>
Wed, 18 Mar 2015 03:29:08 +0000 (20:29 -0700)
Change-Id: I86b337a6280d044f17bf9f87bdaf1672f3e15673
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
applications/statistics-manager/src/main/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/helper/MatchComparatorFactory.java
applications/statistics-manager/src/test/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/helper/FlowComparatorFactoryTest.java

index 24a5997049d2573d1ee446a3d4eaafd32d5f0a0a..bbab5bfe5212d9c51b368a02ca501aff1f0c3c8a 100644 (file)
@@ -37,6 +37,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getVlanMatch() == null) {
                     if (statsMatch.getVlanMatch() != null) {
                         return false;
@@ -56,6 +57,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getTunnel() == null) {
                     if (statsMatch.getTunnel() != null) {
                         return false;
@@ -75,6 +77,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getProtocolMatchFields() == null) {
                     if (statsMatch.getProtocolMatchFields() != null) {
                         return false;
@@ -94,6 +97,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getMetadata() == null) {
                     if (statsMatch.getMetadata() != null) {
                         return false;
@@ -113,6 +117,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getLayer4Match() == null) {
                     if (statsMatch.getLayer4Match() != null) {
                         return false;
@@ -132,6 +137,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getLayer3Match() == null) {
                     if (statsMatch.getLayer3Match() != null) {
                         return false;
@@ -151,6 +157,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getIpMatch() == null) {
                     if (statsMatch.getIpMatch() != null) {
                         return false;
@@ -170,6 +177,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getInPort() == null) {
                     if (statsMatch.getInPort() != null) {
                         return false;
@@ -189,6 +197,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getInPhyPort() == null) {
                     if (statsMatch.getInPhyPort() != null) {
                         return false;
@@ -208,6 +217,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getEthernetMatch() == null) {
                     if (statsMatch.getEthernetMatch() != null) {
                         return false;
@@ -227,6 +237,7 @@ public final class MatchComparatorFactory {
              */
             @Override
             public boolean areObjectsEqual(Match statsMatch, Match storedMatch) {
+               if (storedMatch == null) return false;
                 if (storedMatch.getIcmpv4Match() == null) {
                     if (statsMatch.getIcmpv4Match() != null) {
                         return false;
index 03cc361906ac0aaf1d8a62a8562de80cbd1d0806..46445e3e0cc05ac7d7a4ca9959c14c71794892f8 100644 (file)
@@ -70,6 +70,7 @@ public final class FlowComparatorFactoryTest {
         compareViaComparator(simpleComparator);
         assertEquals(false, simpleComparator.areObjectsEqual(nullFlow, storedFlow));
         assertEquals(true, simpleComparator.areObjectsEqual(statsFlow, copyStatsFlow));
+        assertEquals(false,simpleComparator.areObjectsEqual(statsFlow,nullFlow));
     }
 
     private void compareViaComparator(SimpleComparator<Flow> simpleComparator) {