diff --git a/lucene/core/src/test/org/apache/lucene/util/TestVersion.java b/lucene/core/src/test/org/apache/lucene/util/TestVersion.java index 867caaf6e36..7aae3dbba73 100644 --- a/lucene/core/src/test/org/apache/lucene/util/TestVersion.java +++ b/lucene/core/src/test/org/apache/lucene/util/TestVersion.java @@ -17,6 +17,8 @@ package org.apache.lucene.util; +import java.lang.annotation.Annotation; + public class TestVersion extends LuceneTestCase { public void test() { @@ -36,9 +38,17 @@ public class TestVersion extends LuceneTestCase { public void testDeprecations() throws Exception { Version values[] = Version.values(); // all but the latest version should be deprecated - for (int i = 0; i < values.length-2; i++) { - assertNotNull(values[i].name() + " should be deprecated", - Version.class.getField(values[i].name()).getAnnotation(Deprecated.class)); + for (int i = 0; i < values.length; i++) { + if (i + 1 == values.length) { + assertSame("Last constant must be LUCENE_CURRENT", Version.LUCENE_CURRENT, values[i]); + } + // TODO: Use isAnnotationPresent once bug in Java 8 is fixed (LUCENE-4808) + final Annotation ann = Version.class.getField(values[i].name()).getAnnotation(Deprecated.class); + if (i + 2 != values.length) { + assertNotNull(values[i].name() + " should be deprecated", ann); + } else { + assertNull(values[i].name() + " should not be deprecated", ann); + } } } }