public AssertingLeafReader(LeafReader in) { super(in); // check some basic reader sanity assert in.maxDoc() >= 0; assert in.numDocs() <= in.maxDoc(); assert in.numDeletedDocs() + in.numDocs() == in.maxDoc(); assert !in.hasDeletions() || in.numDeletedDocs() > 0 && in.numDocs() < in.maxDoc(); addCoreClosedListener( new CoreClosedListener() { @Override public void onClose(Object ownerCoreCacheKey) throws IOException { final Object expectedKey = getCoreCacheKey(); assert expectedKey == ownerCoreCacheKey : "Core closed listener called on a different key " + expectedKey + " <> " + ownerCoreCacheKey; } }); }