diff --git a/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheUsageStack.java b/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheUsageStack.java index 85cdd62..cf6a951 100644 --- a/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheUsageStack.java +++ b/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheUsageStack.java @@ -22,14 +22,15 @@ class CacheUsageStack { } private void removeValueFromStack(CacheValue value) { + if (value == null) throw new IllegalStateException("Current size is supposed to be " + size); if (value.front != null) { value.front.back = value.back; - } else if (first == value) { + } else { first = value.back; } if (value.back != null) { value.back.front = value.front; - } else if (last == value) { + } else { last = value.front; } value.front = null; @@ -66,6 +67,7 @@ class CacheUsageStack { lock.lock(); try { addValueToStackTop(value); + value.detached = false; } finally { lock.unlock(); } @@ -98,4 +100,15 @@ class CacheUsageStack { public int size() { return size; } + + @Override + public String toString() { + StringBuilder stringBulder = new StringBuilder(); + CacheValue current = first; + while (current != null) { + stringBulder.append(first + "\n"); + current = current.back; + } + return stringBulder.toString(); + } } \ No newline at end of file diff --git a/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheValue.java b/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheValue.java index d3196f1..027b558 100644 --- a/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheValue.java +++ b/src/main/java/ca/recrown/islandsurvivalcraft/caching/CacheValue.java @@ -19,5 +19,6 @@ class CacheValue { /** * Whether or not this value is detached from the cache's hashmap. */ - public volatile boolean detached; + public volatile boolean detached = true; + } \ No newline at end of file