ONOS-4505: Bug Fixes

Change-Id: I190b4e6b950381eef8d6fba1e3ac345ea6854e40
diff --git a/protocols/isis/ctl/src/main/java/org/onosproject/isis/controller/impl/DefaultIsisInterface.java b/protocols/isis/ctl/src/main/java/org/onosproject/isis/controller/impl/DefaultIsisInterface.java
index 134a48b..864b6e5 100644
--- a/protocols/isis/ctl/src/main/java/org/onosproject/isis/controller/impl/DefaultIsisInterface.java
+++ b/protocols/isis/ctl/src/main/java/org/onosproject/isis/controller/impl/DefaultIsisInterface.java
@@ -88,6 +88,7 @@
     private IsisLsdb isisLsdb = null;
     private List<Ip4Address> allConfiguredInterfaceIps = null;
     private Channel channel;
+    private boolean helloSenderStarted = false;
 
     /**
      * Returns ISIS LSDB instance.
@@ -1103,12 +1104,14 @@
      */
     public void startHelloSender(Channel channel) {
         log.debug("IsisInterfaceImpl::startHelloSender");
-
-        isisHelloPduSender = new IsisHelloPduSender(channel, this);
-        exServiceHello = Executors.newSingleThreadScheduledExecutor();
-        final ScheduledFuture<?> helloHandle =
-                exServiceHello.scheduleAtFixedRate(isisHelloPduSender, 0,
-                                                   helloInterval, TimeUnit.SECONDS);
+        if (!helloSenderStarted) {
+            isisHelloPduSender = new IsisHelloPduSender(channel, this);
+            exServiceHello = Executors.newSingleThreadScheduledExecutor();
+            final ScheduledFuture<?> helloHandle =
+                    exServiceHello.scheduleAtFixedRate(isisHelloPduSender, 0,
+                                                       helloInterval, TimeUnit.SECONDS);
+            helloSenderStarted = true;
+        }
     }
 
     /**
@@ -1117,5 +1120,6 @@
     public void stopHelloSender() {
         log.debug("IsisInterfaceImpl::stopHelloSender");
         exServiceHello.shutdown();
+        helloSenderStarted = false;
     }
 }
\ No newline at end of file