[ 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)