Fixed a bug in `RangeByIsCountStrategy`.

Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/954ead23
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/954ead23
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/954ead23

Branch: refs/heads/TINKERPOP-1742-master
Commit: 954ead234dad91e1e5492d56c11de51ffe7354fd
Parents: 1e3c359
Author: Daniel Kuppitz <daniel_kupp...@hotmail.com>
Authored: Tue Aug 8 08:23:06 2017 -0700
Committer: Daniel Kuppitz <daniel_kupp...@hotmail.com>
Committed: Tue Aug 8 21:31:34 2017 -0700

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                           | 1 +
 .../traversal/strategy/optimization/CountStrategy.java       | 8 +++-----
 .../traversal/strategy/optimization/CountStrategyTest.java   | 1 +
 3 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/954ead23/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 89922fb..eecaf20 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -143,6 +143,7 @@ TinkerPop 3.2.6 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 This release also includes changes from <<release-3-1-8, 3.1.8>>.
 
+* Fixed a bug in `RangeByIsCountStrategy`.
 * Allowed access to `InjectStep.injections` for `TraversalStrategy` analysis.
 * Exceptions that occur during result iteration in Gremlin Server will now 
return `SCRIPT_EVALUATION_EXCEPTION` rather than `SERVER_ERROR`.
 * `AddEdgeStep` attaches detached vertices prior to edge creation.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/954ead23/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
index ecddd2c..a6fa06d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
@@ -27,10 +27,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.NotStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.*;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep;
@@ -138,7 +135,8 @@ public final class CountStrategy extends 
AbstractTraversalStrategy<TraversalStra
                         traversal.asAdmin().removeStep(curr); // CountStep
                         size -= 2;
                         if (!dismissCountIs) {
-                            if (traversal.getParent() instanceof FilterStep) {
+                            final TraversalParent p;
+                            if ((p = traversal.getParent()) instanceof 
FilterStep && !(p instanceof ConnectiveStep)) {
                                 final Step<?, ?> filterStep = parent.asStep();
                                 final Traversal.Admin parentTraversal = 
filterStep.getTraversal();
                                 final Step notStep = new 
NotStep<>(parentTraversal,

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/954ead23/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
index 8408c07..c17e897 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
@@ -95,6 +95,7 @@ public class CountStrategyTest {
                 {__.filter(__.bothE().count().is(gte(1))), 
__.filter(__.bothE())},
                 {__.filter(__.bothE().count().is(gt(1))), 
__.filter(__.bothE().limit(2).count().is(gt(1)))},
                 {__.filter(__.bothE().count().is(gte(2))), 
__.filter(__.bothE().limit(2).count().is(gte(2)))},
+                {__.and(__.out().count().is(0), __.in().count().is(0)), 
__.and(__.not(__.out()), __.not(__.in()))}
         });
     }
 

Reply via email to