diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
index 83dad7b..08135eb 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
@@ -76,10 +76,7 @@
         }
 
         LispAfiAddress other = (LispAfiAddress) obj;
-        if (afi != other.afi) {
-            return false;
-        }
-        return true;
+        return afi == other.afi;
     }
 
     /**
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAsAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAsAddress.java
index f792715..0cca607 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAsAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAsAddress.java
@@ -68,10 +68,7 @@
         }
 
         LispAsAddress other = (LispAsAddress) obj;
-        if (asNum != other.asNum) {
-            return false;
-        }
-        return true;
+        return asNum == other.asNum;
     }
 
     @Override
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispAppDataLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispAppDataLcafAddress.java
index 684a6b6..69a973b 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispAppDataLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispAppDataLcafAddress.java
@@ -403,7 +403,7 @@
          * @param value integer value
          * @return an array of bytes
          */
-        public static byte[] getPartialByteArray(int value) {
+        static byte[] getPartialByteArray(int value) {
             ByteBuffer buffer = ByteBuffer.allocate(4);
             byte[] array = buffer.putInt(value).array();
             return Arrays.copyOfRange(array, 1, 4);
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispListLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispListLcafAddress.java
index 3360942..317599d 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispListLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/lcaf/LispListLcafAddress.java
@@ -118,15 +118,9 @@
         LispAfiAddress ipv4 = addresses.get(0);
         LispAfiAddress ipv6 = addresses.get(1);
 
-        if (ipv4.getAfi() != AddressFamilyIdentifierEnum.IP4) {
-            return false;
-        }
+        return ipv4.getAfi() == AddressFamilyIdentifierEnum.IP4 &&
+                ipv6.getAfi() == AddressFamilyIdentifierEnum.IP6;
 
-        if (ipv6.getAfi() != AddressFamilyIdentifierEnum.IP6) {
-            return false;
-        }
-
-        return true;
     }
 
     /**
