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

Reply via email to