Do not collect flow and port stats if unsupported

Change-Id: I8dd175803c64e2cafa57b7cbf8b9c268a6391739
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
index ef013b59..8ee8cb0 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -243,16 +243,18 @@
         if (sw == null) {
             return;
         }
-        if (adaptiveFlowSampling) {
-            // NewAdaptiveFlowStatsCollector Constructor
-            NewAdaptiveFlowStatsCollector fsc =
-                    new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
-            stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
-            fsc.start();
-        } else {
-            FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
-            stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
-            fsc.start();
+        if (sw.features().getCapabilities().contains(OFCapabilities.FLOW_STATS)) {
+            if (adaptiveFlowSampling) {
+                // NewAdaptiveFlowStatsCollector Constructor
+                NewAdaptiveFlowStatsCollector fsc =
+                        new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
+                stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
+                fsc.start();
+            } else {
+                FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
+                stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
+                fsc.start();
+            }
         }
         if (sw.features().getCapabilities().contains(OFCapabilities.TABLE_STATS)) {
             TableStatisticsCollector tsc = new TableStatisticsCollector(timer, sw, flowPollFrequency);