Проблема
У меня есть 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