This is an automated email from the ASF dual-hosted git repository.
jin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
The following commit(s) were added to refs/heads/master by this push:
new aaf67cf81 fix(core): close flat mapper iterator after usage (#2281)
aaf67cf81 is described below
commit aaf67cf81c2c3c03e40c2fb47792ac8498a0bce6
Author: Chong Shen <[email protected]>
AuthorDate: Tue Aug 29 16:09:31 2023 +0800
fix(core): close flat mapper iterator after usage (#2281)
close [Bug] FlatMapperIterator should be closed after usage #2280
---
.../traversal/algorithm/CountTraverser.java | 27 +++++++++++++---------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git
a/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/CountTraverser.java
b/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/CountTraverser.java
index 7025aedde..83b3747e0 100644
---
a/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/CountTraverser.java
+++
b/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/CountTraverser.java
@@ -32,6 +32,7 @@ import org.apache.hugegraph.iterator.FilterIterator;
import org.apache.hugegraph.iterator.FlatMapperIterator;
import org.apache.hugegraph.structure.HugeEdge;
import org.apache.hugegraph.util.E;
+import org.apache.tinkerpop.gremlin.structure.util.CloseableIterator;
public class CountTraverser extends HugeTraverser {
@@ -78,19 +79,23 @@ public class CountTraverser extends HugeTraverser {
});
}
- // The last step, just query count
- EdgeStep lastStep = steps.get(stepNum - 1);
- while (edges.hasNext()) {
- Id target = ((HugeEdge) edges.next()).id().otherVertexId();
- if (this.dedup(target)) {
- continue;
+ try {
+ // The last step, just query count
+ EdgeStep lastStep = steps.get(stepNum - 1);
+ while (edges.hasNext()) {
+ Id target = ((HugeEdge) edges.next()).id().otherVertexId();
+ if (this.dedup(target)) {
+ continue;
+ }
+ // Count last layer vertices(without dedup size)
+ long edgesCount = this.edgesCount(target, lastStep);
+ this.count.add(edgesCount);
}
- // Count last layer vertices(without dedup size)
- long edgesCount = this.edgesCount(target, lastStep);
- this.count.add(edgesCount);
- }
- return this.count.longValue();
+ return this.count.longValue();
+ } finally {
+ CloseableIterator.closeIterator(edges);
+ }
}
private Iterator<Edge> edgesOfVertexWithCount(Id source, EdgeStep step) {