From 4901f2fd4ccf615f7e24cb08ea8b8a93741f3453 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 20 Apr 2019 23:04:05 +0200 Subject: [PATCH] Fixed cache bug --- .../references/DatabaseReferencesMetadataCache.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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();