diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java index 805073e86..d54b82ead 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java @@ -67,7 +67,13 @@ public class ChunkHolder> implements IQueueChunk { @Override public synchronized void recycle() { delegate = NULL; - chunkSet = null; + if (chunkSet != null) { + chunkSet.recycle(); + chunkSet = null; + } + chunkExisting = null; + extent = null; + POOL.offer(this); } public synchronized IBlockDelegate getDelegate() { @@ -1039,7 +1045,9 @@ public class ChunkHolder> implements IQueueChunk { chunkSet.setBitMask(bitMask); try { return this.call(chunkSet, () -> { - recycle(); + this.delegate = NULL; + chunkSet.recycle(); + chunkSet = null; calledLock.unlock(stamp); }); } catch (Throwable t) {