diff --git a/utils/misc/src/main/java/org/onlab/graph/SuurballeGraphSearch.java b/utils/misc/src/main/java/org/onlab/graph/SuurballeGraphSearch.java index 395a00fff3..ca4be92b90 100644 --- a/utils/misc/src/main/java/org/onlab/graph/SuurballeGraphSearch.java +++ b/utils/misc/src/main/java/org/onlab/graph/SuurballeGraphSearch.java @@ -69,8 +69,10 @@ public class SuurballeGraphSearch> extends D public Weight weight(E edge) { return edge instanceof ReverseEdge ? weightf.getInitialWeight() : - weightf.weight(edge).merge(firstDijkstra.cost(edge.src())) - .subtract(firstDijkstra.cost(edge.dst())); + (weightf.weight(edge).isNegative() ? + new ScalarWeight(-1.0) : + weightf.weight(edge).merge(firstDijkstra.cost(edge.src())) + .subtract(firstDijkstra.cost(edge.dst()))); } @Override