Fixed a bug when parsing configuration properties for ReactiveForwarding
by catching the appropriate exception.
Apparently, if a property is configured/enabled in file Foo.cfg, e.g.:
flowTimeout = 10
then the corresponding object/value in the Dictionary returned by
ComponentContext.getProperties()
has class type String.
However, if the property is commented-out, e.g.:
then the Dictionary still contains an entry for "flowTimeout", but
its class type is Integer.
Also, updated similar code elsewhere that was catching the generic
Exception with catching more specific exception(s).
Change-Id: I33ec348eb9efe3188e22cfc8cee2bb704948726d
diff --git a/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java b/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
index dcb28f9..46d6446 100644
--- a/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
+++ b/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
@@ -305,7 +305,7 @@
try {
String s = (String) properties.get(propertyName);
value = isNullOrEmpty(s) ? value : Integer.parseInt(s.trim());
- } catch (NumberFormatException e) {
+ } catch (NumberFormatException | ClassCastException e) {
value = null;
}
return value;
diff --git a/apps/routing/src/main/java/org/onosproject/routing/bgp/BgpSessionManager.java b/apps/routing/src/main/java/org/onosproject/routing/bgp/BgpSessionManager.java
index 68aaefb..1dcc82c 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/bgp/BgpSessionManager.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/bgp/BgpSessionManager.java
@@ -105,7 +105,7 @@
} else {
bgpPort = DEFAULT_BGP_PORT;
}
- } catch (Exception e) {
+ } catch (NumberFormatException | ClassCastException e) {
bgpPort = DEFAULT_BGP_PORT;
}
log.debug("BGP port is set to {}", bgpPort);
diff --git a/core/net/src/main/java/org/onosproject/net/topology/impl/DefaultTopologyProvider.java b/core/net/src/main/java/org/onosproject/net/topology/impl/DefaultTopologyProvider.java
index 83e1f91..43669c6 100644
--- a/core/net/src/main/java/org/onosproject/net/topology/impl/DefaultTopologyProvider.java
+++ b/core/net/src/main/java/org/onosproject/net/topology/impl/DefaultTopologyProvider.java
@@ -165,7 +165,7 @@
s = (String) properties.get("maxIdleMs");
newMaxIdleMs = isNullOrEmpty(s) ? maxIdleMs : Integer.parseInt(s.trim());
- } catch (Exception e) {
+ } catch (NumberFormatException | ClassCastException e) {
newMaxEvents = DEFAULT_MAX_EVENTS;
newMaxBatchMs = DEFAULT_MAX_BATCH_MS;
newMaxIdleMs = DEFAULT_MAX_IDLE_MS;
diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
index 720c6cd..738129d 100644
--- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
+++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
@@ -146,7 +146,7 @@
if (flag != null) {
hostRemovalEnabled = flag.equals("true");
}
- } catch (Exception e) {
+ } catch (ClassCastException e) {
hostRemovalEnabled = true;
}
log.info("Host removal is {}", hostRemovalEnabled ? "enabled" : "disabled");
diff --git a/providers/null/device/src/main/java/org/onosproject/provider/nil/device/impl/NullDeviceProvider.java b/providers/null/device/src/main/java/org/onosproject/provider/nil/device/impl/NullDeviceProvider.java
index fb17bf9..d18ba5a 100644
--- a/providers/null/device/src/main/java/org/onosproject/provider/nil/device/impl/NullDeviceProvider.java
+++ b/providers/null/device/src/main/java/org/onosproject/provider/nil/device/impl/NullDeviceProvider.java
@@ -157,7 +157,7 @@
}
s = (String) properties.get("numPorts");
newPortNum = isNullOrEmpty(s) ? DEF_NUMPORTS : Integer.parseInt(s.trim());
- } catch (Exception e) {
+ } catch (NumberFormatException | ClassCastException e) {
log.warn(e.getMessage());
newDevNum = numDevices;
newPortNum = numPorts;
diff --git a/providers/null/link/src/main/java/org/onosproject/provider/nil/link/impl/NullLinkProvider.java b/providers/null/link/src/main/java/org/onosproject/provider/nil/link/impl/NullLinkProvider.java
index ae55939..c0a3d06 100644
--- a/providers/null/link/src/main/java/org/onosproject/provider/nil/link/impl/NullLinkProvider.java
+++ b/providers/null/link/src/main/java/org/onosproject/provider/nil/link/impl/NullLinkProvider.java
@@ -178,7 +178,7 @@
newRate = isNullOrEmpty(s) ? eventRate : Integer.parseInt(s.trim());
s = (String) properties.get("neighbors");
newNbor = isNullOrEmpty(s) ? neighbor : getNeighbor(s.trim());
- } catch (Exception e) {
+ } catch (NumberFormatException | ClassCastException e) {
log.warn(e.getMessage());
newRate = eventRate;
newNbor = neighbor;
diff --git a/providers/null/packet/src/main/java/org/onosproject/provider/nil/packet/impl/NullPacketProvider.java b/providers/null/packet/src/main/java/org/onosproject/provider/nil/packet/impl/NullPacketProvider.java
index ea8d53d..ddf57be 100644
--- a/providers/null/packet/src/main/java/org/onosproject/provider/nil/packet/impl/NullPacketProvider.java
+++ b/providers/null/packet/src/main/java/org/onosproject/provider/nil/packet/impl/NullPacketProvider.java
@@ -123,7 +123,7 @@
try {
String s = String.valueOf(properties.get("pktRate"));
newRate = isNullOrEmpty(s) ? pktRate : Integer.parseInt(s.trim());
- } catch (Exception e) {
+ } catch (NumberFormatException | ClassCastException e) {
log.warn(e.getMessage());
newRate = pktRate;
}