If spanloss is missing from OMS attributes in any span in the topology,
the PCE code crashes due to NullPointerException.
- Check for null before accessing spanloss when calculating OSNR
- Set the link to not valid when analyzing the network for path
computation.
JIRA: TRNSPRTPCE-710
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
Change-Id: I746cdefc0dd79e914ea235e5ad7801b2c73fc121
if (!linkConcatenationiterator.hasNext()) {
return 0L;
}
if (!linkConcatenationiterator.hasNext()) {
return 0L;
}
+ if (this.omsAttributesSpan.getSpanlossCurrent() == null) {
+ LOG.error("in PceLink : Spanloss is null");
+ return 0L;
+ }
// power on the output of the previous ROADM (dBm)
double pout = retrievePower(linkConcatenationiterator.next().augmentation(LinkConcatenation1.class)
.getFiberType());
// power on the output of the previous ROADM (dBm)
double pout = retrievePower(linkConcatenationiterator.next().augmentation(LinkConcatenation1.class)
.getFiberType());
LOG.error("PceLink: No Link type or opposite link is available. Link is ignored {}", linkId);
}
isValid = checkParams();
LOG.error("PceLink: No Link type or opposite link is available. Link is ignored {}", linkId);
}
isValid = checkParams();
- if ((this.omsAttributesSpan == null) && (this.linkType == OpenroadmLinkType.ROADMTOROADM)) {
- isValid = false;
- LOG.error("PceLink: Error reading Span for OMS link. Link is ignored {}", linkId);
+ if (this.linkType == OpenroadmLinkType.ROADMTOROADM) {
+ if (this.omsAttributesSpan == null) {
+ isValid = false;
+ LOG.error("PceLink: Error reading Span for OMS link. Link is ignored {}", linkId);
+ } else if (this.omsAttributesSpan.getSpanlossCurrent() == null) {
+ isValid = false;
+ LOG.error("PceLink: Error reading Spanloss for OMS link. Link is ignored {}", linkId);
+ }
}
if ((this.srlgList != null) && (this.srlgList.isEmpty())) {
isValid = false;
}
if ((this.srlgList != null) && (this.srlgList.isEmpty())) {
isValid = false;