diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java index ac26e85cbe88..fb4b182dfef7 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java @@ -511,7 +511,7 @@ public Collection listStorageFiles() { if ( type.equals( StoreType.COUNTS ) ) { - addCurrentCountStoreFile( files ); + addCountStoreFiles( files ); } else { @@ -525,12 +525,15 @@ public Collection listStorageFiles() return files; } - private void addCurrentCountStoreFile( List files ) + private void addCountStoreFiles( List files ) { - File countStoreFile = neoStores.getCounts().currentFile(); - StoreFileMetadata countStoreFileMetadata = new StoreFileMetadata( countStoreFile, - Optional.of( StoreType.COUNTS ), RecordFormat.NO_RECORD_SIZE ); - files.add( countStoreFileMetadata ); + Iterable countStoreFiles = neoStores.getCounts().allFiles(); + for ( File countStoreFile : countStoreFiles ) + { + StoreFileMetadata countStoreFileMetadata = new StoreFileMetadata( countStoreFile, + Optional.of( StoreType.COUNTS ), RecordFormat.NO_RECORD_SIZE ); + files.add( countStoreFileMetadata ); + } } /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java index 49ae7fea128d..08c84d171dde 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java @@ -21,6 +21,8 @@ import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -243,6 +245,19 @@ private boolean transfer( EntryVisitor producer, EntryVisitor allFiles() + { + List existingFiles = new ArrayList<>(); + for ( File candidateFile : rotationStrategy.candidateFiles() ) + { + if ( candidateFile.exists() ) + { + existingFiles.add( candidateFile ); + } + } + return existingFiles; + } + private class RotationTask implements PreparedRotation, Runnable { private final RotationState rotation;