diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index efaae8a..d5fed14 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -356,7 +356,7 @@
             OvsdbSet setPorts = (OvsdbSet) bridge.getPortsColumn().data();
             @SuppressWarnings("unchecked")
             Set<Uuid> ports = setPorts.set();
-            if (ports == null || ports.size() == 0) {
+            if (ports == null || ports.isEmpty()) {
                 log.warn("The port uuid is null");
                 return null;
             }
@@ -677,9 +677,9 @@
         mirrorBuilder.externalIds(mirror.externalIds());
         mirror = mirrorBuilder.build();
 
-        if (mirror.monitorDstPorts().size() == 0 &&
-                mirror.monitorSrcPorts().size() == 0 &&
-                mirror.monitorVlans().size() == 0) {
+        if (mirror.monitorDstPorts().isEmpty() &&
+                mirror.monitorSrcPorts().isEmpty() &&
+                mirror.monitorVlans().isEmpty()) {
             log.warn("Invalid monitoring data");
             return false;
         }
@@ -1332,7 +1332,7 @@
         OvsdbSet datapathIdSet = (OvsdbSet) bridge.getDatapathIdColumn().data();
         @SuppressWarnings("unchecked")
         Set<String> datapathIds = datapathIdSet.set();
-        if (datapathIds == null || datapathIds.size() == 0) {
+        if (datapathIds == null || datapathIds.isEmpty()) {
             return null;
         }
         String datapathId = (String) datapathIds.toArray()[0];
@@ -1347,7 +1347,7 @@
         OvsdbSet ofPortSet = (OvsdbSet) intf.getOpenFlowPortColumn().data();
         @SuppressWarnings("unchecked")
         Set<Integer> ofPorts = ofPortSet.set();
-        if (ofPorts == null || ofPorts.size() <= 0) {
+        if (ofPorts == null || ofPorts.isEmpty()) {
             log.debug("The ofport is null in {}", intf.getName());
             return -1;
         }
