SOLR-1317: Fix CapitalizationFilterFactory to work when keep parameter is not specified

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@799593 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Erik Hatcher 2009-07-31 12:54:02 +00:00
parent 67ad122d9b
commit 18078af958
3 changed files with 11 additions and 1 deletions

View File

@ -449,6 +449,9 @@ Bug Fixes
SolrQueryParser considers special. SolrQueryParser considers special.
(hossman) (hossman)
54. SOLR-1317: Fix CapitalizationFilterFactory to work when keep parameter is not specified.
(ehatcher)
Other Changes Other Changes
---------------------- ----------------------
1. Upgraded to Lucene 2.4.0 (yonik) 1. Upgraded to Lucene 2.4.0 (yonik)

View File

@ -141,7 +141,7 @@ public class CapitalizationFilterFactory extends BaseTokenFilterFactory {
return; return;
} }
if (keep.contains(buffer, offset, length)) { if (keep != null && keep.contains(buffer, offset, length)) {
if (wordCount == 0 && forceFirstLetter) { if (wordCount == 0 && forceFirstLetter) {
buffer[offset] = Character.toUpperCase(buffer[offset]); buffer[offset] = Character.toUpperCase(buffer[offset]);
} }

View File

@ -17,6 +17,8 @@
package org.apache.solr.analysis; package org.apache.solr.analysis;
import junit.framework.TestCase;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -115,5 +117,10 @@ public class TestCapitalizationFilter extends BaseTokenTestCase {
termBuffer = "kiTTEN".toCharArray(); termBuffer = "kiTTEN".toCharArray();
factory.processWord(termBuffer, 0, termBuffer.length, 0 ); factory.processWord(termBuffer, 0, termBuffer.length, 0 );
assertEquals( "kiTTEN", new String(termBuffer, 0, termBuffer.length)); assertEquals( "kiTTEN", new String(termBuffer, 0, termBuffer.length));
factory.keep = null;
termBuffer = "kiTTEN".toCharArray();
factory.processWord(termBuffer, 0, termBuffer.length, 0 );
assertEquals( "Kitten", new String(termBuffer, 0, termBuffer.length));
} }
} }