added better error message for RepeatStep usage errors.

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

Branch: refs/heads/TINKERPOP-1752
Commit: b28701f7c660c87b05edee3404a66c2fb3671089
Parents: c59393f
Author: Marko A. Rodriguez <okramma...@gmail.com>
Authored: Mon Sep 11 11:56:20 2017 -0600
Committer: Marko A. Rodriguez <okramma...@gmail.com>
Committed: Mon Sep 11 11:56:20 2017 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                           | 1 +
 .../gremlin/process/traversal/step/branch/RepeatStep.java    | 8 ++++++++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b28701f7/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index c15835c..6876fde 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 TinkerPop 3.2.7 (Release Date: NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* Added better error message for illegal use of `repeat()`-step.
 * Bump to Jackson 2.8.10.
 * Added an `EmbeddedRemoteConnection` so that it's possible to mimic a remote 
connection within the same JVM.
 * The Console's `plugin.txt` file is only updated if there were manually 
uninstalled plugins.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b28701f7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
index 0fc2cdd..15c8be1 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
@@ -91,6 +91,8 @@ public final class RepeatStep<S> extends ComputerAwareStep<S, 
S> implements Trav
     }
 
     public Traversal.Admin<S, S> getRepeatTraversal() {
+        if(null == this.repeatTraversal)
+            throw new IllegalStateException("The repeat()-traversal was not 
defined: " + this);
         return this.repeatTraversal;
     }
 
@@ -181,6 +183,9 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
 
     @Override
     protected Iterator<Traverser.Admin<S>> standardAlgorithm() throws 
NoSuchElementException {
+        if(null == this.repeatTraversal)
+            throw new IllegalStateException("The repeat()-traversal was not 
defined: " + this);
+
         while (true) {
             if (this.repeatTraversal.getEndStep().hasNext()) {
                 return this.repeatTraversal.getEndStep();
@@ -202,6 +207,9 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
 
     @Override
     protected Iterator<Traverser.Admin<S>> computerAlgorithm() throws 
NoSuchElementException {
+        if(null == this.repeatTraversal)
+            throw new IllegalStateException("The repeat()-traversal was not 
defined: " + this);
+
         final Traverser.Admin<S> start = this.starts.next();
         if (doUntil(start, true)) {
             start.resetLoops();

Reply via email to