You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/06/17 22:30:09 UTC

[tinkerpop] branch TINKERPOP-2238 updated: TINKERPOP-2238 Fixed iterator leaks in generator tests

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-2238
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/TINKERPOP-2238 by this push:
     new 5935b8f  TINKERPOP-2238 Fixed iterator leaks in  generator tests
5935b8f is described below

commit 5935b8f7f8671e47cbc9e3ea24860b1fbd8e1265
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Mon Jun 17 18:29:38 2019 -0400

    TINKERPOP-2238 Fixed iterator leaks in  generator tests
---
 .../algorithm/generator/AbstractGeneratorTest.java  | 21 +++++++++++++++------
 .../algorithm/generator/CommunityGeneratorTest.java |  2 --
 .../generator/DistributionGeneratorTest.java        |  5 +----
 .../gremlin/process/computer/GraphComputerTest.java |  2 --
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/AbstractGeneratorTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/AbstractGeneratorTest.java
index 7353465..acda7bd 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/AbstractGeneratorTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/AbstractGeneratorTest.java
@@ -22,9 +22,11 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.CloseableIterator;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.javatuples.Triplet;
 
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -39,12 +41,19 @@ public class AbstractGeneratorTest extends AbstractGremlinTest {
      * attach to the same IN/OUT vertices given their "oid" properties.
      */
     protected boolean same(final Graph g1, final Graph g2) {
-        return IteratorUtils.stream(g1.vertices())
-                .map(v -> Triplet.<Integer, List<Vertex>, List<Vertex>>with(v.value("oid"), IteratorUtils.list(v.vertices(Direction.IN)), IteratorUtils.list(v.vertices(Direction.OUT))))
-                .allMatch(p -> {
-                    final Vertex v = IteratorUtils.filter(g2.vertices(), vx -> vx.value("oid").equals(p.getValue0())).next();
-                    return sameInVertices(v, p.getValue1()) && sameOutVertices(v, p.getValue2());
-                });
+        final Iterator<Vertex> itty = g1.vertices();
+        try {
+            return IteratorUtils.stream(itty)
+                    .map(v -> Triplet.<Integer, List<Vertex>, List<Vertex>>with(v.value("oid"), IteratorUtils.list(v.vertices(Direction.IN)), IteratorUtils.list(v.vertices(Direction.OUT))))
+                    .allMatch(p -> {
+                        final Iterator<Vertex> innerItty = g2.vertices();
+                        final Vertex v = IteratorUtils.filter(innerItty, vx -> vx.value("oid").equals(p.getValue0())).next();
+                        CloseableIterator.closeIterator(innerItty);
+                        return sameInVertices(v, p.getValue1()) && sameOutVertices(v, p.getValue2());
+                    });
+        } finally {
+            CloseableIterator.closeIterator(itty);
+        }
     }
 
     private boolean sameInVertices(final Vertex v, final List<Vertex> inVertices) {
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
index 9c28bbe..5aacc9e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
@@ -47,12 +47,10 @@ import static org.junit.Assert.*;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 @RunWith(Enclosed.class)
-@IgnoreIteratorLeak
 public class CommunityGeneratorTest {
     private static final Logger logger = LoggerFactory.getLogger(CommunityGeneratorTest.class);
 
     @RunWith(Parameterized.class)
-    @IgnoreIteratorLeak
     public static class DifferentDistributionsTest extends AbstractGeneratorTest {
 
         @Parameterized.Parameters(name = "test({0},{1},{2})")
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/DistributionGeneratorTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/DistributionGeneratorTest.java
index 2164598..8a2842f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/DistributionGeneratorTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/DistributionGeneratorTest.java
@@ -22,7 +22,6 @@ import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.FeatureRequirement;
 import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
-import org.apache.tinkerpop.gremlin.IgnoreIteratorLeak;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
@@ -42,11 +41,9 @@ import static org.junit.Assert.assertTrue;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 @RunWith(Enclosed.class)
-@IgnoreIteratorLeak
 public class DistributionGeneratorTest {
 
     @RunWith(Parameterized.class)
-    @IgnoreIteratorLeak
     public static class DifferentDistributionsTest extends AbstractGeneratorTest {
 
         @Parameterized.Parameters(name = "test({0},{1})")
@@ -146,7 +143,7 @@ public class DistributionGeneratorTest {
         }
 
         protected Iterable<Vertex> verticesByOid(final Graph graph) {
-            List<Vertex> vertices = graph.traversal().V().toList();
+            final List<Vertex> vertices = graph.traversal().V().toList();
             Collections.sort(vertices,
                     (v1, v2) -> ((Integer) v1.value("oid")).compareTo((Integer) v2.value("oid")));
             return vertices;
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index 4d4d4d2..2b018db 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
@@ -23,7 +23,6 @@ import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationUtils;
 import org.apache.tinkerpop.gremlin.ExceptionCoverage;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.IgnoreIteratorLeak;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram;
 import org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram;
@@ -112,7 +111,6 @@ import static org.junit.Assume.assumeNoException;
         "graphDoesNotSupportProvidedGraphComputer"
 })
 @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
-@IgnoreIteratorLeak
 public class GraphComputerTest extends AbstractGremlinProcessTest {
 
     @Test