fix: useless ring detection removed valid path (#1723)

* remove useless ring detection due to it will remove valid path
* limit max depth to 5000 to avoid stackoverflow
diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankAPI.java
index 6957e99..0a69036 100644
--- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankAPI.java
+++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankAPI.java
@@ -68,7 +68,7 @@
                                "The source of rank request can't be null");
         E.checkArgument(request.steps != null && !request.steps.isEmpty(),
                         "The steps of rank request can't be empty");
-        E.checkArgument(request.steps.size() <= Long.parseLong(DEFAULT_MAX_DEPTH),
+        E.checkArgument(request.steps.size() <= DEFAULT_MAX_DEPTH,
                         "The steps length of rank request can't exceed %s",
                         DEFAULT_MAX_DEPTH);
         E.checkArgument(request.alpha > 0 && request.alpha <= 1.0,
diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PathsAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PathsAPI.java
index 095463b..9824a4b 100644
--- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PathsAPI.java
+++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PathsAPI.java
@@ -21,6 +21,7 @@
 
 import static com.baidu.hugegraph.traversal.algorithm.HugeTraverser.DEFAULT_CAPACITY;
 import static com.baidu.hugegraph.traversal.algorithm.HugeTraverser.DEFAULT_MAX_DEGREE;
+import static com.baidu.hugegraph.traversal.algorithm.HugeTraverser.DEFAULT_MAX_DEPTH;
 import static com.baidu.hugegraph.traversal.algorithm.HugeTraverser.DEFAULT_PATHS_LIMIT;
 
 import java.util.Collection;
@@ -114,9 +115,9 @@
                                "The targets of request can't be null");
         E.checkArgumentNotNull(request.step,
                                "The step of request can't be null");
-        E.checkArgument(request.depth > 0,
-                        "The depth of request must be > 0, but got: %s",
-                        request.depth);
+        E.checkArgument(request.depth > 0 && request.depth <= DEFAULT_MAX_DEPTH,
+                        "The depth of request must be in (0, %s], " +
+                        "but got: %s", DEFAULT_MAX_DEPTH, request.depth);
 
         LOG.debug("Graph [{}] get paths from source vertices '{}', target " +
                   "vertices '{}', with step '{}', max depth '{}', " +
diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankAPI.java
index d94a213..9328798 100644
--- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankAPI.java
+++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankAPI.java
@@ -82,7 +82,7 @@
                         "The limit of rank request must be > 0 or == -1, " +
                         "but got: %s", request.limit);
         E.checkArgument(request.maxDepth > 1L &&
-                        request.maxDepth <= Long.parseLong(DEFAULT_MAX_DEPTH),
+                        request.maxDepth <= DEFAULT_MAX_DEPTH,
                         "The max depth of rank request must be " +
                         "in range (1, %s], but got '%s'",
                         DEFAULT_MAX_DEPTH, request.maxDepth);
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/HugeTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/HugeTraverser.java
index 70dda43..84dc3a2 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/HugeTraverser.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/HugeTraverser.java
@@ -82,8 +82,8 @@
     public static final String DEFAULT_MAX_DEGREE = "10000";
     public static final String DEFAULT_SKIP_DEGREE = "100000";
     public static final String DEFAULT_SAMPLE = "100";
-    public static final String DEFAULT_MAX_DEPTH = "50";
     public static final String DEFAULT_WEIGHT = "0";
+    public static final int DEFAULT_MAX_DEPTH = 5000;
 
     protected static final int MAX_VERTICES = 10;
 
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/PathsTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/PathsTraverser.java
index 641e3da..8de63f9 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/PathsTraverser.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/traversal/algorithm/PathsTraverser.java
@@ -20,7 +20,6 @@
 package com.baidu.hugegraph.traversal.algorithm;
 
 import java.util.Iterator;
-import java.util.Objects;
 
 import org.apache.tinkerpop.gremlin.structure.Edge;
 
@@ -52,7 +51,9 @@
                         sourceDir == targetDir.opposite(),
                         "Source direction must equal to target direction" +
                         " or opposite to target direction");
-        checkPositive(depth, "max depth");
+        E.checkArgument(depth > 0 && depth <= DEFAULT_MAX_DEPTH,
+                        "The depth must be in (0, %s], but got: %s",
+                        DEFAULT_MAX_DEPTH, depth);
         checkDegree(degree);
         checkCapacity(capacity);
         checkLimit(limit);
@@ -124,9 +125,6 @@
                     PathSet results = this.record.findPath(target, null,
                                                            true, false);
                     for (Path path : results) {
-                        if (Objects.equals(target, targetV)) {
-                            continue;
-                        }
                         this.paths.add(path);
                         if (this.reachLimit()) {
                             return;
@@ -160,9 +158,6 @@
                     PathSet results = this.record.findPath(target, null,
                                                            true, false);
                     for (Path path : results) {
-                        if (Objects.equals(target, sourceV)) {
-                            continue;
-                        }
                         this.paths.add(path);
                         if (this.reachLimit()) {
                             return;