Fix NPE when there's no secondary path.
Change-Id: I3bb8eeb2abf140d44cf4dc7186cf1bf316c23f70
diff --git a/core/api/src/main/java/org/onosproject/net/DisjointPath.java b/core/api/src/main/java/org/onosproject/net/DisjointPath.java
index 39059f4..39237ea 100644
--- a/core/api/src/main/java/org/onosproject/net/DisjointPath.java
+++ b/core/api/src/main/java/org/onosproject/net/DisjointPath.java
@@ -43,7 +43,7 @@
/**
* Gets secondary path.
*
- * @return secondary path
+ * @return secondary path, or null if there is no secondary path available.
*/
Path backup();
}
diff --git a/core/common/src/main/java/org/onosproject/common/DefaultTopology.java b/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
index 8c4fbc8..72780d3 100644
--- a/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
+++ b/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
@@ -482,6 +482,12 @@
}
private DisjointPath networkDisjointPath(DisjointPathPair<TopologyVertex, TopologyEdge> path) {
+ if (!path.hasBackup()) {
+ // There was no secondary path available.
+ return new DefaultDisjointPath(CORE_PROVIDER_ID,
+ (DefaultPath) networkPath(path.primary()),
+ null);
+ }
return new DefaultDisjointPath(CORE_PROVIDER_ID,
(DefaultPath) networkPath(path.primary()),
(DefaultPath) networkPath(path.secondary()));