You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by di...@apache.org on 2020/08/26 17:32:33 UTC
[tinkerpop] branch 3.4-dev updated: TINKERPOP-2408 Fix iterator
leak in HasContainer (#1315)
This is an automated email from the ASF dual-hosted git repository.
divijv pushed a commit to branch 3.4-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/3.4-dev by this push:
new b1ae147 TINKERPOP-2408 Fix iterator leak in HasContainer (#1315)
b1ae147 is described below
commit b1ae14773bddeeaea2cdb3a7154ac49e81d43110
Author: Divij Vaidya <di...@amazon.com>
AuthorDate: Wed Aug 26 10:31:22 2020 -0700
TINKERPOP-2408 Fix iterator leak in HasContainer (#1315)
---
CHANGELOG.asciidoc | 1 +
.../gremlin/process/traversal/step/util/HasContainer.java | 11 ++++++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 34647e9..d1b8122 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Delegated handling of erroneous response to the worker thread pool instead of event loop thread pool in Java Driver.
* Removed `Connection` from `Connection Pool` when server closes a connection with no pending requests in Java Driver.
* Fixed bug in Javascript `Translator` that wasn't handling child traversals well.
+* Fix an interator leak in HasContainer.
[[release-3-4-8]]
=== TinkerPop 3.4.8 (Release Date: August 3, 2020)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
index 1cfc7eb..111e23c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.apache.tinkerpop.gremlin.structure.Element;
import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.T;
+import org.apache.tinkerpop.gremlin.structure.util.CloseableIterator;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import java.io.Serializable;
@@ -82,9 +83,13 @@ public class HasContainer implements Serializable, Cloneable, Predicate<Element>
return testLabel(element);
final Iterator<? extends Property> itty = element.properties(this.key);
- while (itty.hasNext()) {
- if (testValue(itty.next()))
- return true;
+ try {
+ while (itty.hasNext()) {
+ if (testValue(itty.next()))
+ return true;
+ }
+ } finally {
+ CloseableIterator.closeIterator(itty);
}
return false;
}