From 4f82e15e20dedacaaa65e24f4fe1fecaa41eb42a Mon Sep 17 00:00:00 2001 From: fickludd Date: Mon, 13 Mar 2017 11:27:33 +0100 Subject: [PATCH] Fixed Object/Property bug in CC LookupFilter --- .../java/org/neo4j/kernel/impl/api/LookupFilter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/LookupFilter.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/LookupFilter.java index cfd456156a7eb..e9022b422949e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/LookupFilter.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/LookupFilter.java @@ -27,6 +27,8 @@ import org.neo4j.cursor.Cursor; import org.neo4j.kernel.api.exceptions.EntityNotFoundException; import org.neo4j.kernel.api.index.PropertyAccessor; +import org.neo4j.kernel.api.properties.DefinedProperty; +import org.neo4j.kernel.api.properties.Property; import org.neo4j.kernel.api.schema_new.IndexQuery; import org.neo4j.kernel.impl.api.operations.EntityOperations; import org.neo4j.storageengine.api.NodeItem; @@ -61,12 +63,13 @@ public static PrimitiveLongIterator exactIndexMatches( PropertyAccessor accessor { LongPredicate combinedPredicate = nodeId -> { - try { + try + { for ( IndexQuery predicate : numericPredicates ) { int propertyKeyId = predicate.propertyKeyId(); - Object value = accessor.getProperty( nodeId, propertyKeyId ); - if ( !predicate.test( value ) ) + Property property = accessor.getProperty( nodeId, propertyKeyId ); + if ( property.isDefined() && !predicate.test( ((DefinedProperty)property).value() ) ) { return false; }