void (boolean assertInvalid) { try { l.readLock().lock(); AtomicBoolean allValid = new AtomicBoolean(true); int[] keyCounter = new int[1]; int[] nodeCounter = new int[1]; LongSet ids = new LongOpenHashSet(keySize); checkMax(getRoot(), 0, assertInvalid, allValid, keyCounter, nodeCounter, ids, true); if (assertInvalid) { assert nodeSize() == nodeCounter[0] : "node size: "+ nodeSize() +"; actual: "+nodeCounter[0]; assert keySize == keyCounter[0] : "key size: "+ keySize +"; actual: "+keyCounter[0]; assert keySize >= nodeSize() : keySize + "; "+nodeSize(); } } finally { l.readLock().unlock(); } }