LUCENE-3420: Disable the finalness checks in TokenStream and Analyzer for implementing subclasses in different packages, where assertions are not enabled
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/branch_3x@1172228 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 1e8ac39..4f64196 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -28,6 +28,12 @@
the number of terms of the query when rewrite(), in order to improve performance.
(Robert Muir, Koji Sekiguchi)
+Test Cases
+
+* LUCENE-3420: Disable the finalness checks in TokenStream and Analyzer
+ for implementing subclasses in different packages, where assertions are not
+ enabled. (Uwe Schindler)
+
======================= Lucene 3.4.0 =======================
Bug fixes
diff --git a/lucene/src/java/org/apache/lucene/analysis/Analyzer.java b/lucene/src/java/org/apache/lucene/analysis/Analyzer.java
index d03814f..087df77 100644
--- a/lucene/src/java/org/apache/lucene/analysis/Analyzer.java
+++ b/lucene/src/java/org/apache/lucene/analysis/Analyzer.java
@@ -48,6 +48,8 @@
private boolean assertFinal() {
try {
final Class<?> clazz = getClass();
+ if (!clazz.desiredAssertionStatus())
+ return true;
assert clazz.isAnonymousClass() ||
(clazz.getModifiers() & (Modifier.FINAL | Modifier.PRIVATE)) != 0 ||
(
diff --git a/lucene/src/java/org/apache/lucene/analysis/TokenStream.java b/lucene/src/java/org/apache/lucene/analysis/TokenStream.java
index e432132..d03d9ab 100644
--- a/lucene/src/java/org/apache/lucene/analysis/TokenStream.java
+++ b/lucene/src/java/org/apache/lucene/analysis/TokenStream.java
@@ -111,6 +111,8 @@
private boolean assertFinal() {
try {
final Class<?> clazz = getClass();
+ if (!clazz.desiredAssertionStatus())
+ return true;
assert clazz.isAnonymousClass() ||
(clazz.getModifiers() & (Modifier.FINAL | Modifier.PRIVATE)) != 0 ||
Modifier.isFinal(clazz.getMethod("incrementToken").getModifiers()) :