From c3d69f52e579da322ef1fe7a26a463fda3b7323f Mon Sep 17 00:00:00 2001 From: Yuta HIGUCHI Date: Mon, 8 Aug 2016 11:52:52 -0700 Subject: [PATCH] Fix NPE when there's no secondary path. Change-Id: I3bb8eeb2abf140d44cf4dc7186cf1bf316c23f70 --- .../api/src/main/java/org/onosproject/net/DisjointPath.java | 2 +- .../main/java/org/onosproject/common/DefaultTopology.java | 6 ++++++ .../src/main/java/org/onlab/graph/DisjointPathPair.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) 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 39059f4f2c..39237eae5a 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 @@ public interface DisjointPath extends Path { /** * 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 8c4fbc84ec..72780d39cf 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 @@ public class DefaultTopology extends AbstractModel implements Topology { } private DisjointPath networkDisjointPath(DisjointPathPair 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())); diff --git a/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java b/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java index 0e25116fe1..1e8d3d6140 100644 --- a/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java +++ b/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java @@ -66,7 +66,7 @@ public class DisjointPathPair> implements Pa /** * Returns the secondary path. * - * @return primary path + * @return secondary path, or null if there is no secondary path available. */ public Path secondary() { return secondary;