Sonar suggestions - fixes to potential null pointer dereferences
Change-Id: I4e350a9d72a9322971d5d4f831f1bdf167986b87
diff --git a/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaWaveserverDeviceDescription.java b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaWaveserverDeviceDescription.java
index 3918c02..c0ef3a9 100644
--- a/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaWaveserverDeviceDescription.java
+++ b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaWaveserverDeviceDescription.java
@@ -162,7 +162,8 @@
//Working in Ghz //(Nominal central frequency - 193.1)/channelSpacing = spacingMultiplier
final int baseFrequency = 193100;
- int spacingMult = (int) (toGbps(((int) config.getDouble(frequency) -
+
+ int spacingMult = chSpacing == null ? baseFrequency : (int) (toGbps(((int) config.getDouble(frequency) -
baseFrequency)) / toGbpsFromHz(chSpacing.frequency().asHz())); //FIXME is there a better way ?
return ochPortDescription(PortNumber.portNumber(portNumber), isEnabled, OduSignalType.ODU4, isTunable,
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
index 6c73693..ef79ee3 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
@@ -381,7 +381,8 @@
return;
}
- EthCriterion e = null; VlanIdCriterion v = null;
+ EthCriterion e = null;
+ VlanIdCriterion v = null;
Collection<IPCriterion> ips = new ArrayList<IPCriterion>();
// convert filtering conditions for switch-intfs into flowrules
FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
@@ -399,6 +400,12 @@
}
}
+ if (v == null || e == null) {
+ log.warn("Pica Pipeline ETH_DST and/or VLAN_ID not specified");
+ fail(filt, ObjectiveError.BADPARAMS);
+ return;
+ }
+
// cache for later use
Filter filter = new Filter(p, e, v, ips);
filters.add(filter);
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
index 03a77ba..9ca9420 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
@@ -270,6 +270,12 @@
}
+ if (v == null || e == null) {
+ log.warn("Soft Router Pipeline ETH_DST and/or VLAN_ID not specified");
+ fail(filt, ObjectiveError.BADPARAMS);
+ return;
+ }
+
log.debug("Modifying Port/VLAN/MAC filtering rules in filter table: {}/{}/{}",
p.port(), v.vlanId(), e.mac());
TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java
index c5698a4..d8de983 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java
@@ -336,14 +336,16 @@
// ofdpa cannot match on ALL portnumber, so we need to use separate
// rules for each port.
List<PortNumber> portnums = new ArrayList<PortNumber>();
- if (portCriterion.port() == PortNumber.ALL) {
- for (Port port : deviceService.getPorts(deviceId)) {
- if (port.number().toLong() > 0 && port.number().toLong() < OFPP_MAX) {
- portnums.add(port.number());
+ if (portCriterion != null) {
+ if (portCriterion.port() == PortNumber.ALL) {
+ for (Port port : deviceService.getPorts(deviceId)) {
+ if (port.number().toLong() > 0 && port.number().toLong() < OFPP_MAX) {
+ portnums.add(port.number());
+ }
}
+ } else {
+ portnums.add(portCriterion.port());
}
- } else {
- portnums.add(portCriterion.port());
}
List<FlowRule> rules = new ArrayList<FlowRule>();
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
index 701b76e..0279cb1 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
@@ -108,14 +108,16 @@
// ofdpa cannot match on ALL portnumber, so we need to use separate
// rules for each port.
List<PortNumber> portnums = new ArrayList<PortNumber>();
- if (portCriterion.port() == PortNumber.ALL) {
- for (Port port : deviceService.getPorts(deviceId)) {
- if (port.number().toLong() > 0 && port.number().toLong() < OFPP_MAX) {
- portnums.add(port.number());
+ if (portCriterion != null) {
+ if (portCriterion.port() == PortNumber.ALL) {
+ for (Port port : deviceService.getPorts(deviceId)) {
+ if (port.number().toLong() > 0 && port.number().toLong() < OFPP_MAX) {
+ portnums.add(port.number());
+ }
}
+ } else {
+ portnums.add(portCriterion.port());
}
- } else {
- portnums.add(portCriterion.port());
}
List<FlowRule> rules = new ArrayList<FlowRule>();
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuVoltControllerConfig.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuVoltControllerConfig.java
index 2431d2d..173b58e 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuVoltControllerConfig.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuVoltControllerConfig.java
@@ -213,13 +213,13 @@
try {
editcfg = (XMLConfiguration) cfg;
} catch (ClassCastException e) {
- e.printStackTrace();
+ return null;
}
StringWriter stringWriter = new StringWriter();
try {
editcfg.save(stringWriter);
} catch (ConfigurationException e) {
- e.printStackTrace();
+ return null;
}
String s = stringWriter.toString();
String fromStr = buildStartTag(TARGET, false) + target +
diff --git a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java
index bce3b6d..f094ba1 100644
--- a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java
+++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java
@@ -97,6 +97,7 @@
);
} catch (IOException e) {
log.error("Cannot comunicate to device {} , exception {}", deviceId, e.getMessage());
+ return;
}
device.getSession().editConfig(config.substring(config.indexOf("-->") + 3));
} catch (NullPointerException e) {