diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexAccessor.java index feada6eb7f725..bde948b64c69e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexAccessor.java @@ -40,6 +40,8 @@ */ public interface IndexAccessor extends Closeable { + IndexAccessor EMPTY = new Adapter(); + /** * Deletes this index as well as closes all used external resources. * There will not be any interactions after this call. @@ -118,8 +120,6 @@ public interface IndexAccessor extends Closeable */ boolean isDirty(); - IndexAccessor EMPTY = new Adapter(); - class Adapter implements IndexAccessor { @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java index 3882765917814..d19ff19c550d0 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java @@ -43,12 +43,11 @@ abstract class NativeSchemaIndexReader implements IndexReader { - private final GBPTree tree; + protected final SchemaIndexDescriptor descriptor; final Layout layout; - private final IndexSamplingConfig samplingConfig; - final Set,IOException>> openSeekers; - protected final SchemaIndexDescriptor descriptor; + private final GBPTree tree; + private final IndexSamplingConfig samplingConfig; NativeSchemaIndexReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexBase.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexBase.java index ab8d7391b0c4b..046a0e9b14346 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexBase.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexBase.java @@ -25,6 +25,7 @@ import org.neo4j.collection.primitive.PrimitiveIntCollections; import org.neo4j.function.ThrowingConsumer; import org.neo4j.function.ThrowingFunction; +import org.neo4j.helpers.Exceptions; import org.neo4j.kernel.api.index.IndexProvider; /** @@ -125,17 +126,9 @@ public static void forAll( ThrowingConsumer consum { consumer.accept( subject ); } - catch ( Exception caught ) + catch ( Exception e ) { - E castedException = (E) caught; - if ( exception == null ) - { - exception = castedException; - } - else - { - exception.addSuppressed( castedException ); - } + exception = Exceptions.chain( exception, (E) e ); } } if ( exception != null ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexReader.java index ba18317a36f58..aab4d8f6a0122 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionIndexReader.java @@ -26,6 +26,7 @@ import org.neo4j.graphdb.Resource; import org.neo4j.internal.kernel.api.IndexOrder; import org.neo4j.internal.kernel.api.IndexQuery; +import org.neo4j.internal.kernel.api.IndexQuery.ExistsPredicate; import org.neo4j.kernel.api.exceptions.index.IndexNotApplicableKernelException; import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.kernel.impl.api.schema.BridgingIndexProgressor; @@ -113,8 +114,10 @@ public boolean hasFullValuePrecision( IndexQuery... predicates ) IndexReader instance = selector.select( instances, predicates ); if ( instance == null ) { - assert predicates.length == 1 && predicates[0] instanceof IndexQuery.ExistsPredicate : - "Unexpected selector result for predicates " + Arrays.toString( predicates ); + if ( !(predicates.length == 1 && predicates[0] instanceof ExistsPredicate) ) + { + throw new IllegalStateException( "Selected IndexReader null for predicates " + Arrays.toString( predicates ) ); + } // null means ExistsPredicate and we don't care about // full value precision for that, therefor true. return true; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector00.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector00.java index c37f024a53ced..9adb08d9c4722 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector00.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector00.java @@ -20,10 +20,12 @@ package org.neo4j.kernel.impl.index.schema.fusion; import org.neo4j.internal.kernel.api.IndexQuery; +import org.neo4j.internal.kernel.api.IndexQuery.RangePredicate; import org.neo4j.storageengine.api.schema.IndexReader; import org.neo4j.values.storable.Value; import org.neo4j.values.storable.Values; +import static org.neo4j.internal.kernel.api.IndexQuery.*; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.LUCENE; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.SPATIAL; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.TEMPORAL; @@ -73,13 +75,13 @@ public IndexReader select( IndexReader[] instances, IndexQuery... predicates ) } IndexQuery predicate = predicates[0]; - if ( predicate instanceof IndexQuery.ExactPredicate ) + if ( predicate instanceof ExactPredicate ) { - IndexQuery.ExactPredicate exactPredicate = (IndexQuery.ExactPredicate) predicate; + ExactPredicate exactPredicate = (ExactPredicate) predicate; return select( instances, exactPredicate.value() ); } - if ( predicate instanceof IndexQuery.RangePredicate ) + if ( predicate instanceof RangePredicate ) { switch ( predicate.valueGroup() ) { @@ -95,7 +97,7 @@ public IndexReader select( IndexReader[] instances, IndexQuery... predicates ) default: // fall through } } - if ( predicate instanceof IndexQuery.ExistsPredicate ) + if ( predicate instanceof ExistsPredicate ) { return null; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector10.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector10.java index 9695cbe8bebcc..0df316fb47829 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector10.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector10.java @@ -26,6 +26,7 @@ import org.neo4j.values.storable.ValueGroup; import org.neo4j.values.storable.Values; +import static org.neo4j.internal.kernel.api.IndexQuery.*; import static org.neo4j.internal.kernel.api.IndexQuery.ExactPredicate; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.LUCENE; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.NUMBER; @@ -89,7 +90,7 @@ public IndexReader select( IndexReader[] instances, IndexQuery... predicates ) return select( instances, exactPredicate.value() ); } - if ( predicate instanceof IndexQuery.RangePredicate ) + if ( predicate instanceof RangePredicate ) { switch ( predicate.valueGroup() ) { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector20.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector20.java index fe19020b2069d..b4062f0bc563e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector20.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/fusion/FusionSelector20.java @@ -25,6 +25,7 @@ import org.neo4j.values.storable.ValueGroup; import org.neo4j.values.storable.Values; +import static org.neo4j.internal.kernel.api.IndexQuery.*; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.LUCENE; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.NUMBER; import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.SPATIAL; @@ -85,18 +86,18 @@ public IndexReader select( IndexReader[] instances, IndexQuery... predicates ) } IndexQuery predicate = predicates[0]; - if ( predicate instanceof IndexQuery.ExactPredicate ) + if ( predicate instanceof ExactPredicate ) { - IndexQuery.ExactPredicate exactPredicate = (IndexQuery.ExactPredicate) predicate; + ExactPredicate exactPredicate = (ExactPredicate) predicate; return select( instances, exactPredicate.value() ); } - if ( predicate instanceof IndexQuery.StringPredicate ) + if ( predicate instanceof StringPredicate ) { return instances[STRING]; } - if ( predicate instanceof IndexQuery.RangePredicate ) + if ( predicate instanceof RangePredicate ) { switch ( predicate.valueGroup() ) { @@ -116,7 +117,7 @@ public IndexReader select( IndexReader[] instances, IndexQuery... predicates ) default: // fall through } } - if ( predicate instanceof IndexQuery.ExistsPredicate ) + if ( predicate instanceof ExistsPredicate ) { return null; }