Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2109

gremlin subgraph step fail when vertices contains properties with null values

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Bug
    • 3.3.4
    • None
    • tinkergraph
    • None

    Description

      We are currently using OrientDB as graph database backend. OrientDB allows properties with null values. The orientdb database is requested with Groovy/Gremlin request.

      When we are requesting for a 'subgraph' step (which use the tinkergraph on memory database for creating the subgraph), an exception is thrown when the vertex of Orientdb contains properties with null values:

      Part of the exception trace:

      Caused by: com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of the GREMLIN script
              DB name="connectitdb"
              at org.apache.tinkerpop.gremlin.orientdb.executor.StorageGremlinExecutor.executeGremlinNative(StorageGremlinExecutor.java:78)
              at org.apache.tinkerpop.gremlin.orientdb.executor.StorageGremlinExecutor.executeGremlinNative(StorageGremlinExecutor.java:54)
              at com.activus.connectit.storage.service.graph.TinkerpopGraphService.executeGroovyGremlinScript(TinkerpopGraphService.java:149)
              ... 105 common frames omitted
      Caused by: javax.script.ScriptException: javax.script.ScriptException: java.lang.IllegalArgumentException: Property value can not be null
              at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:406)
              at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
              at org.apache.tinkerpop.gremlin.orientdb.executor.StorageGremlinExecutor.executeGremlinNative(StorageGremlinExecutor.java:72)
              ... 107 common frames omitted
      Caused by: javax.script.ScriptException: java.lang.IllegalArgumentException: Property value can not be null
              at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:722)
              at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:404)
              ... 109 common frames omitted

      Caused by: java.lang.IllegalArgumentException: Property value can not be null
              at org.apache.tinkerpop.gremlin.structure.Property$Exceptions.propertyValueCanNotBeNull(Property.java:143)
              at org.apache.tinkerpop.gremlin.structure.util.ElementHelper.validateProperty(ElementHelper.java:97)
              at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.property(TinkerVertex.java:87)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphStep.lambda$getOrCreate$2(SubgraphStep.java:119)
              at java.util.Iterator.forEachRemaining(Iterator.java:116)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphStep.getOrCreate(SubgraphStep.java:117)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphStep.addEdgeToSubgraph(SubgraphStep.java:135)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphStep.sideEffect(SubgraphStep.java:80)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep.processNextStart(SideEffectStep.java:39)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:48)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.hasNext(ExpandableStepIterator.java:42)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep.processAllStarts(NoOpBarrierStep.java:66)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep.processNextStart(NoOpBarrierStep.java:55)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:48)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep.processNextStart(SideEffectStep.java:38)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:48)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.hasNext(ExpandableStepIterator.java:42)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep.processAllStarts(NoOpBarrierStep.java:66)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep.processNextStart(NoOpBarrierStep.java:55)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:48)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
              at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep.processNextStart(SideEffectStep.java:38)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
              at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)

      Attachments

        Activity

          People

            Unassigned Unassigned
            Bruno Supiot Bruno Supiot
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: