Nullpointerexception при удалении вершины Janusgraph - PullRequest
1 голос
/ 15 января 2020

Проблема

У меня есть org.apache.tinkerpop.gremlin.structure.Vertex, который я называю v, и экземпляр JanusGraph, который я называю graph.

Я пытаюсь удалить v с помощью:

v.remove();
graph.traversal().tx().commit();

но я получаю исключение нулевого указателя

Caused by: java.lang.NullPointerException
    at org.janusgraph.graphdb.database.EdgeSerializer.parseRelation(EdgeSerializer.java:128)
    at org.janusgraph.graphdb.database.EdgeSerializer.readRelation(EdgeSerializer.java:73)
    at org.janusgraph.graphdb.transaction.RelationConstructor.readRelation(RelationConstructor.java:75)
    at org.janusgraph.graphdb.transaction.RelationConstructor$1$1.next(RelationConstructor.java:60)
    at org.janusgraph.graphdb.transaction.RelationConstructor$1$1.next(RelationConstructor.java:48)
    at org.janusgraph.graphdb.vertices.AbstractVertex.remove(AbstractVertex.java:101)
    at org.janusgraph.graphdb.vertices.StandardVertex.remove(StandardVertex.java:101)
    at com.brein.common.graph.TinkerPopGraphDatabase.lambda$deleteVertex$4(TinkerPopGraphDatabase.java:500)
    at com.brein.common.graph.TinkerPopGraphDatabase.retry(TinkerPopGraphDatabase.java:616)
    ... 33 more

Следующая строка в библиотеке janusgraph-core содержит нулевой указатель:

if (multiplicity.isConstrained()) {

Так что может показаться, что когда библиотека читает все данные для вершины, чтобы затем удалить ее, она сталкивается с ребром, для которого нет кратности?

Мой вопрос: в чем может быть причина, по которой я не могу удалить вершину здесь, и каковы некоторые идеи о том, как я могу исследовать эту проблему?

Примечания

  • Я использую версию Janusgraph 0.2.0
  • Я использую Кассандру в качестве внутреннего хранилища данных для базы данных графов
  • Мой график содержит метки ребер Simple и One-to-one типов
  • Я получаю исключение nullpointer также, если пытаюсь прочитать представление вершины в графе graphSON
...