The following query produces an NPE whether or not each NOT is grouped by parentheses- a single NOT works fine:
java.lang.NullPointerException
at org.neo4j.cypher.internal.commands.HasRelationshipTo.isMatch(Predicate.scala:113)
at org.neo4j.cypher.internal.commands.Not.isMatch(Predicate.scala:94)
at org.neo4j.cypher.internal.commands.And.isMatch(Predicate.scala:72)
at org.neo4j.cypher.internal.pipes.FilterPipe$$anonfun$1.apply(FilterPipe.scala:31)
at org.neo4j.cypher.internal.pipes.FilterPipe$$anonfun$1.apply(FilterPipe.scala:31)
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:213)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:212)
at scala.collection.immutable.List.filter(List.scala:45)
at org.neo4j.cypher.internal.pipes.FilterPipe.createResults(FilterPipe.scala:31)
at org.neo4j.cypher.internal.pipes.ExtractPipe.createResults(ExtractPipe.scala:38)
at org.neo4j.cypher.internal.pipes.ColumnFilterPipe.createResults(ColumnFilterPipe.scala:37)
at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun$3$$anonfun$apply$1.apply(ExecutionPlanImpl.scala:62)
at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun$3$$anonfun$apply$1.apply(ExecutionPlanImpl.scala:62)
at org.neo4j.cypher.PipeExecutionResult.immutableResult(PipeExecutionResult.scala:36)
at org.neo4j.cypher.PipeExecutionResult.iterator(PipeExecutionResult.scala:138)
at org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:140)
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334)
at scala.collection.JavaConversions$IteratorWrapper.hasNext(JavaConversions.scala:562)