Index: lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java =================================================================== --- lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java (revision 1210990) +++ lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java (working copy) @@ -18,17 +18,20 @@ */ -import org.apache.lucene.util.LuceneTestCase; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; + import junit.framework.TestSuite; import junit.textui.TestRunner; import org.apache.lucene.analysis.MockAnalyzer; -import org.apache.lucene.store.Directory; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.apache.lucene.store.Directory; +import org.apache.lucene.util.LuceneTestCase; +import org.junit.Test; -import java.io.IOException; - public class TestFilterIndexReader extends LuceneTestCase { private static class TestReader extends FilterIndexReader { @@ -136,4 +139,20 @@ reader.close(); directory.close(); } + + public void testOverrideMethods() throws Exception { + StringBuilder methods = new StringBuilder(); + for (Method m : FilterIndexReader.class.getMethods()) { + int mods = m.getModifiers(); + if (Modifier.isStatic(mods) || Modifier.isFinal(mods)) { + continue; + } + Class< ? > declaringClass = m.getDeclaringClass(); + if (declaringClass != FilterIndexReader.class && declaringClass != Object.class) { + methods.append(m.getName()).append("\n"); + } + } + assertEquals("some methods are not overridden by FilterIndexReader: " + methods, 0, methods.length()); + } + }