Index: . =================================================================== --- . (revision 1293822) +++ . (working copy) Property changes on: . ___________________________________________________________________ Modified: svn:mergeinfo Merged /lucene/dev/trunk:r1293821-1293823 Index: lucene =================================================================== --- lucene (revision 1293822) +++ lucene (working copy) Property changes on: lucene ___________________________________________________________________ Modified: svn:mergeinfo Merged /lucene/dev/trunk/lucene:r1293821-1293823 Index: lucene/core/src/test/org/apache/lucene/index/TestFilterIndexReader.java =================================================================== --- lucene/core/src/test/org/apache/lucene/index/TestFilterIndexReader.java (revision 1293822) +++ lucene/core/src/test/org/apache/lucene/index/TestFilterIndexReader.java (working copy) @@ -146,6 +146,22 @@ directory.close(); } + private void checkOverrideMethods(Class clazz) throws Exception { + boolean fail = false; + for (Method m : clazz.getMethods()) { + int mods = m.getModifiers(); + if (Modifier.isStatic(mods) || Modifier.isFinal(mods) || m.isSynthetic()) { + continue; + } + Class declaringClass = m.getDeclaringClass(); + if (declaringClass != clazz && declaringClass != Object.class) { + System.err.println("method is not overridden by "+clazz.getName()+": " + m.toGenericString()); + fail = true; + } + } + assertFalse(clazz.getName()+" does not override some methods; see log above", fail); + } + public void testOverrideMethods() throws Exception { HashSet methodsThatShouldNotBeOverridden = new HashSet(); methodsThatShouldNotBeOverridden.add("reopen"); @@ -154,10 +170,10 @@ boolean fail = false; for (Method m : FilterIndexReader.class.getMethods()) { int mods = m.getModifiers(); - if (Modifier.isStatic(mods) || Modifier.isFinal(mods)) { + if (Modifier.isStatic(mods) || Modifier.isFinal(mods) || m.isSynthetic()) { continue; } - Class< ? > declaringClass = m.getDeclaringClass(); + Class declaringClass = m.getDeclaringClass(); String name = m.getName(); if (declaringClass != FilterIndexReader.class && declaringClass != Object.class && !methodsThatShouldNotBeOverridden.contains(name)) { System.err.println("method is not overridden by FilterIndexReader: " + name); @@ -168,6 +184,13 @@ } } assertFalse("FilterIndexReader overrides (or not) some problematic methods; see log above", fail); + + // some more inner classes: + checkOverrideMethods(FilterIndexReader.FilterTermEnum.class); + checkOverrideMethods(FilterIndexReader.FilterTermDocs.class); + // TODO: FilterTermPositions should extend correctly, this is borken, + // but for backwards compatibility we let it be: + // checkOverrideMethods(FilterIndexReader.FilterTermPositions.class); } } Index: solr =================================================================== --- solr (revision 1293822) +++ solr (working copy) Property changes on: solr ___________________________________________________________________ Modified: svn:mergeinfo Merged /lucene/dev/trunk/solr:r1293821-1293823 Index: solr/core =================================================================== --- solr/core (revision 1293822) +++ solr/core (working copy) Property changes on: solr/core ___________________________________________________________________ Modified: svn:mergeinfo Merged /lucene/dev/trunk/solr/core:r1293821-1293823