Index: src/java/org/apache/lucene/analysis/CharArraySet.java =================================================================== --- src/java/org/apache/lucene/analysis/CharArraySet.java (revision 893325) +++ src/java/org/apache/lucene/analysis/CharArraySet.java (working copy) @@ -1,5 +1,6 @@ package org.apache.lucene.analysis; +import java.util.Arrays; import java.util.AbstractSet; import java.util.Collection; import java.util.Collections; @@ -143,6 +144,13 @@ this.charUtils = CharacterUtils.getInstance(matchVersion); this.matchVersion = matchVersion; } + + /** Clears all entries in this set. This method is supported for reusing, but not {@link Set#remove}. */ + @Override + public void clear() { + count = 0; + Arrays.fill(entries, null); + } /** true if the len chars of text starting at off * are in the set */ @@ -465,6 +473,11 @@ } @Override + public void clear() { + throw new UnsupportedOperationException(); + } + + @Override public boolean add(Object o){ throw new UnsupportedOperationException(); } Index: src/test/org/apache/lucene/analysis/TestCharArraySet.java =================================================================== --- src/test/org/apache/lucene/analysis/TestCharArraySet.java (revision 893325) +++ src/test/org/apache/lucene/analysis/TestCharArraySet.java (working copy) @@ -72,13 +72,14 @@ CharArraySet set=new CharArraySet(Version.LUCENE_CURRENT, 10,true); set.addAll(Arrays.asList(TEST_STOP_WORDS)); assertEquals("Not all words added", TEST_STOP_WORDS.length, set.size()); - try{ - set.clear(); - fail("remove is not supported"); - }catch (UnsupportedOperationException e) { - // expected - assertEquals("Not all words added", TEST_STOP_WORDS.length, set.size()); - } + set.clear(); + assertEquals("not empty", 0, set.size()); + for(int i=0;i