[
https://issues.apache.org/jira/browse/TINKERPOP-2972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17757692#comment-17757692
]
ASF GitHub Bot commented on TINKERPOP-2972:
-------------------------------------------
xiazcy commented on PR #2216:
URL: https://github.com/apache/tinkerpop/pull/2216#issuecomment-1688996842
> I see this error in a build. How should I resolve it ?
>
> ```
> gremlin-javascript: Error occurred while calling a method on a Groovy
class from classpath. InvocationTargetException: javax.script.ScriptException:
java.lang.IllegalArgumentException: keys must be unique in SelectStep -> [Help
1]
> ```
This looks like the build is failing when trying to generate the Gherkin
Feature test traversals file for javascript through
`gremlin-javascript/build/generate.groovy`, which looks like is due to a Select
Feature test case that is now failing the new error condition introduced in
this PR:
https://github.com/apache/tinkerpop/blob/e0779f768289a5e436523c7c6fd7ac1b0f660c37/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/Select.feature#L895
You might need to look into the test, which is presenting a potential use
case, and see if it needs to be changed with this new behaviour you are
introducing.
This also ties into a general comment, I'd recommend adding Gherkin Feature
tests for these step behaviour changes in addition to unit tests. An example
for asserting errors in Feature tests is here:
https://github.com/apache/tinkerpop/blob/e0779f768289a5e436523c7c6fd7ac1b0f660c37/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/MergeVertex.feature#L969
I usually run these Feature tests through TinkerGraph locally with this
test, which runs all the steps:
`tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphFeatureTest.java`
> ProjectStep will produce an unexpected output when dealing with duplicate keys
> ------------------------------------------------------------------------------
>
> Key: TINKERPOP-2972
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2972
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.6.4
> Reporter: Jianzhong Liu
> Priority: Major
>
> g.V().project("a", "b", "b").by("lang").by(T.id).by("age")
> TP:
> 1 \{'b': 29}
> 2 \{'b': 27}
> 3 \{'a': 'java', 'b': '3'}
> 4 \{'b': 32}
> 5 \{'a': 'java', 'b': '5'}
> 6 \{'b': 35}
> TinkerPop erroneously generates an output from the final 'productive'
> by-traversal when a key is used more than once, a situation that should not
> occur. A proposed solution is to throw an exception when a redundant key is
> detected.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)