Skip to content

Error when adding a vertex propery with cardinality list by providing a value list (only providing a single value is possible) #3484

@mrckzgl

Description

@mrckzgl
  • Version: 0.6.1
  • Storage Backend: berkleyje
  • Mixed Index Backend: lucene
  • Expected Behavior: No Error
  • Current Behavior: Error
  • Steps to Reproduce:

Consider this JRuby code, where "prop_test" does not yet exist in the schema:

  dbtx = DB
  traverser = dbtx.traversal.add_v()
  traverser.property(VertexProperty::Cardinality::list, "prop_test", ["test"])
  traverser.iterate()
  dbtx.tx().commit()

The expected result is to add a vertex property "prop_test" of cardinality list with values ["test"]. However I got following error:

2023-01-23 14:49:51 - Java::JavaLang::IllegalArgumentException - Property value [["test"]] is of type class org.jruby.specialized.RubyArrayOneObject is not supported:
	org.apache.tinkerpop.gremlin.structure.Property$Exceptions.dataTypeOfPropertyValueNotSupported(org/apache/tinkerpop/gremlin/structure/Property.java:159)
	org.apache.tinkerpop.gremlin.structure.Property$Exceptions.dataTypeOfPropertyValueNotSupported(org/apache/tinkerpop/gremlin/structure/Property.java:155)
	org.janusgraph.graphdb.transaction.StandardJanusGraphTx.verifyAttribute(org/janusgraph/graphdb/transaction/StandardJanusGraphTx.java:638)
	org.janusgraph.graphdb.transaction.StandardJanusGraphTx.addProperty(org/janusgraph/graphdb/transaction/StandardJanusGraphTx.java:853)
	org.janusgraph.graphdb.transaction.StandardJanusGraphTx.addProperty(org/janusgraph/graphdb/transaction/StandardJanusGraphTx.java:842)
	org.janusgraph.graphdb.vertices.AbstractVertex.property(org/janusgraph/graphdb/vertices/AbstractVertex.java:180)
	org.janusgraph.graphdb.vertices.AbstractVertex.property(org/janusgraph/graphdb/vertices/AbstractVertex.java:45)
	org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AddPropertyStep.sideEffect(org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java:165)
	org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep.processNextStart(org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectStep.java:39)
	org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(org/apache/tinkerpop/gremlin/process/traversal/step/util/AbstractStep.java:150)
	org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(org/apache/tinkerpop/gremlin/process/traversal/step/util/ExpandableStepIterator.java:55)
	org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(org/apache/tinkerpop/gremlin/process/traversal/step/filter/FilterStep.java:37)
	org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(org/apache/tinkerpop/gremlin/process/traversal/step/util/AbstractStep.java:135)
	org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(org/apache/tinkerpop/gremlin/process/traversal/step/util/AbstractStep.java:40)
	org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(org/apache/tinkerpop/gremlin/process/traversal/Traversal.java:210)
	org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java:2994)
	org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java:192)
	org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/DefaultGraphTraversal.java:48)

Interestingly, when additionally providing a single value for the first time defining the property like this:

  traverser = dbtx.traversal.add_v()
  traverser.property(VertexProperty::Cardinality::list, "prop_test", "test")
  traverser.property(VertexProperty::Cardinality::list, "prop_test", ["test"])
  traverser.iterate()
  dbtx.tx().commit()

It works without error and the property "prop_test" is created with cardinality list.

best

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions