diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispControllerBootstrap.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispControllerBootstrap.java
index 449983a..c529123 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispControllerBootstrap.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispControllerBootstrap.java
@@ -125,9 +125,9 @@
         try {
             eventLoopGroup = new EpollEventLoopGroup();
             channelClass = EpollDatagramChannel.class;
-        } catch (Throwable e) {
+        } catch (RuntimeException e) {
             log.debug("Failed to initialize native (epoll) transport. "
-                        + "Reason: {}. Proceeding with NIO event group.", e.getMessage());
+                        + "Reason: {}. Proceeding with NIO event group.", e);
         }
         eventLoopGroup = new NioEventLoopGroup();
         channelClass = NioDatagramChannel.class;
diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMapResolver.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMapResolver.java
index af7fa20..2436dd7 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMapResolver.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/impl/LispMapResolver.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.lisp.ctl.impl;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import org.onosproject.lisp.msg.protocols.DefaultLispEncapsulatedControl.DefaultEcmBuilder;
 import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.DefaultMapRecordBuilder;
@@ -100,7 +101,7 @@
 
         } else {
 
-            if (mapReplyRecords.size() > 0) {
+            if (!mapReplyRecords.isEmpty()) {
 
                 List<LispMessage> mapReplies = Lists.newArrayList();
 
@@ -125,7 +126,7 @@
                 return mapReplies;
             }
 
-            if (mapRequestRecords.size() > 0) {
+            if (!mapRequestRecords.isEmpty()) {
 
                 List<LispMessage> ecms = Lists.newArrayList();
 
@@ -146,7 +147,7 @@
                 return ecms;
             }
         }
-        return null;
+        return ImmutableList.of();
     }
 
     /**
