@Override public void free(Block block) { synchronized (this) { checkUpdate(Free); Long id = block.getId(); add(Free, id); if (activeReadBlocks.contains(id)) error(Free, id + " is a read block"); else if (!activeWriteBlocks.contains(id)) error(Free, id + " is not a write block"); activeWriteBlocks.remove(id); } blockMgr.free(block); }