diff --git a/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadataCache.java b/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadataCache.java index 9785d2e..e474606 100644 --- a/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadataCache.java +++ b/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadataCache.java @@ -81,13 +81,14 @@ public class DatabaseReferencesMetadataCache { if (closed) throw new IOException("Cache already closed!"); lock.writeLock().lock(); try { - for (int i = 0; i < references.length; i++) { - if (cleanerIds[i] == 0) { - throw new IOException("Null cleaner id"); - } - } Long2LongMap referencesBlocksToAdd = new Long2LongLinkedOpenHashMap(references, blockIds, 0.5f); Long2ByteMap referencesCleanersToAdd = new Long2ByteLinkedOpenHashMap(references, cleanerIds, 0.5f); + for (int i = 0; i < references.length; i++) { + if (cleanerIds[i] == 0) { + referencesBlocksToAdd.remove(references[i]); + referencesCleanersToAdd.remove(references[i]); + } + } references2Blocks.putAll(referencesBlocksToAdd); referencesCleaners.putAll(referencesCleanersToAdd); flush();