Restart the scheduled task when polling frequency is really changed

The netconf device provider always restart scheduled task
even if polling frequency is not actaully changed.

This patch fixed that restart the scheduled task when polling frequency is really changed.

Change-Id: Ib2175e882bf6a22e7934955020c00b092a13a48f
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 80b9108..d5ad8f4 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -205,6 +205,7 @@
         controller.addDeviceListener(innerNodeListener);
         deviceService.addListener(deviceListener);
         pollingExecutor.execute(NetconfDeviceProvider.this::connectDevices);
+        scheduledTask = schedulePolling();
         modified(context);
         log.info("Started");
     }
@@ -236,17 +237,22 @@
     public void modified(ComponentContext context) {
         if (context != null) {
             Dictionary<?, ?> properties = context.getProperties();
-            pollFrequency = Tools.getIntegerProperty(properties, POLL_FREQUENCY_SECONDS,
+            int newPollFrequency = Tools.getIntegerProperty(properties, POLL_FREQUENCY_SECONDS,
                     POLL_FREQUENCY_SECONDS_DEFAULT);
-            log.info("Configured. Poll frequency is configured to {} seconds", pollFrequency);
+
+            if (newPollFrequency != pollFrequency) {
+                pollFrequency = newPollFrequency;
+
+                if (scheduledTask != null) {
+                    scheduledTask.cancel(false);
+                }
+                scheduledTask = schedulePolling();
+                log.info("Configured. Poll frequency is configured to {} seconds", pollFrequency);
+            }
 
             maxRetries = Tools.getIntegerProperty(properties, MAX_RETRIES, MAX_RETRIES_DEFAULT);
             log.info("Configured. Number of retries is configured to {} times", maxRetries);
         }
-        if (scheduledTask != null) {
-            scheduledTask.cancel(false);
-        }
-        scheduledTask = schedulePolling();
     }
 
     public NetconfDeviceProvider() {