Я пытаюсь пройти в режиме DFS с несколькими вершинами в качестве начального узла. (начальный узел). они хранятся в очереди блокировки. У меня есть потребительские потоки, которые принимают один узел за раз и выполняют обход dfs. Однако я получаю NPE. не уверен, что не так с кодом. следующий код
class Consumer implements Runnable{
private BlockingQueue<Vertex> queue;
private OrientBaseGraph graph;
public Consumer(BlockingQueue<Vertex> queue) {
graph = DB.getFactory().getNoTx();
graph.makeActive();
this.queue = queue;
}
@Override
public void run() {
Vertex v = queue.poll();
Stack<Vertex> stack = new Stack<>();
stack.push(v);
while(!stack.isEmpty()) {
Vertex current = stack.pop();
Iterable<Vertex> children = current.getVertices(Direction.OUT, "contains");
for(Vertex child : children) {
stack.push(child);
}
}
}
}
Как я могу это исправить или что не так с этой реализацией?