diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/NeighborRankTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/NeighborRankTraverser.java index f9060cb692..68fd791863 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/NeighborRankTraverser.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/NeighborRankTraverser.java @@ -244,7 +244,8 @@ public static class Step { public Step(HugeGraph g, Directions direction, List labels, long degree, long skipDegree, int top, int capacity) { E.checkArgument(top > 0 && top <= MAX_TOP, - "The top of each layer can't exceed %s", MAX_TOP); + "The top of each layer must be in (0, %s]", + MAX_TOP); E.checkArgument(capacity > 0, "The capacity of each layer must be > 0, " + "but got %s", capacity); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java index cbe69c9ca5..e85f995bcd 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java @@ -212,11 +212,19 @@ private double edgeWeight(HugeEdge edge) { !edge.property(this.weight).isPresent()) { edgeWeight = 1.0; } else { - edgeWeight = edge.value(this.weight); + edgeWeight = this.toDouble(edge.value(this.weight)); } return edgeWeight; } + private double toDouble(Object obj) { + if (obj instanceof Number) { + return ((Number) obj).doubleValue(); + } + + return (double) obj; + } + private Iterator skipSuperNodeIfNeeded(Iterator edges) { if (this.skipDegree <= 0L) { return edges;