[
https://issues.apache.org/jira/browse/TINKERPOP-3289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cole Greer updated TINKERPOP-3289:
----------------------------------
Priority: Critical (was: Major)
> Improving error output for chained counters in repeat()
> -------------------------------------------------------
>
> Key: TINKERPOP-3289
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3289
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.7.7, 3.8.2
> Reporter: Yang Xia
> Priority: Critical
>
>
> Combining two loop termination modulators on a single repeat() produces an
> error that describes the symptom rather than the issue:
> {code:java}
> gremlin>
> g.V().has('code','AGR').repeat(out()).until(has('code','CCU')).times(3).path().by('code')
> The repeat()-traversal was not
> defined:[TinkerGraphStep(vertex,[code.eq(AGR)]),
> RepeatStep([VertexStep(OUT,vertex),
> RepeatEndStep],until([HasStep([code.eq(CCU)])]),emit(false)),
> RepeatStep(until(loops(3)),null,emit(false)), PathStep([value(code)])]
> Type ':help' or ':h' for help.
> Display stack trace? [yN] {code}
> The message suggests the repeat() body is missing, when the actual problem is
> that times() is shorthand for until(loops). Both modulators populate the same
> slot on RepeatStep, so the second one creates a new, empty RepeatStep that is
> never given a body.
> The same generic message appears for times().until(), times().times(),
> until().until() and the until-first form until(...).times().repeat(...).
> RepeatUnrollStrategy can also unroll the neighbouring times() repeat before
> verification runs, removing the context needed to explain the error.
> Improve by adding an informative error message that catches all cases.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)