I'd think the last line should be this instead:

maxTokenCount = Integer.parseInt(maxTokenCountArg);


On 10/17/2012 11:11 AM, Jack Krupansky wrote:
Anybody want to guess what's wrong with this code:

String maxTokenCountArg = args.get("maxTokenCount");
if (maxTokenCountArg == null) {
 throw new IllegalArgumentException("maxTokenCount is mandatory.");
}
maxTokenCount = Integer.parseInt(args.get(maxTokenCountArg));

Hmmm... try this "workaround":

<filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="foo" foo="10000"/>

-- Jack Krupansky

-----Original Message----- From: Dirk Högemann
Sent: Wednesday, October 17, 2012 11:50 AM
To: solr-user@lucene.apache.org
Subject: solr4.0 LimitTokenCountFilterFactory NumberFormatException

Hi,

I am trying to upgrade from Solr 3.5 to Solr 4.0.
I read the following in the example solrconfig:

<!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
        LimitTokenCountFilterFactory in your fieldType definition. E.g.
<filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
   -->

I tried that as follows:

...
<fieldType name="textgen" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LimitTokenCountFilterFactory"
maxTokenCount="100000"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="0"
catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German"
/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
...

The LimitTokenCountFilterFactory configured like that crashes the startup
of the corresponding core with the following exception (without the Factory
the core startup works):


17.10.2012 17:44:19 org.apache.solr.common.SolrException log
SCHWERWIEGEND: null:org.apache.solr.common.SolrException: Plugin init
failure for [schema.xml] fieldType "textgen": Plugin init failure for
[schema.xml] analyze
r/filter: null
       at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177)
       at
org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:369)
       at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:113)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:846)
       at org.apache.solr.core.CoreContainer.load(CoreContainer.java:534)
       at org.apache.solr.core.CoreContainer.load(CoreContainer.java:356)
       at
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:308)
       at
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:107)
       at
org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
       at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
       at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
       at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
       at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4638)
       at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
       at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
       at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
       at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
       at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
       at
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581)
       at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
       at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
       at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
       at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
       at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.solr.common.SolrException: Plugin init failure for
[schema.xml] analyzer/filter: null
       at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177)
       at
org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:377)
       at
org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:95)
       at
org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:43)
       at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151)
       ... 25 more
Caused by: java.lang.NumberFormatException: null
       at java.lang.Integer.parseInt(Integer.java:417)
       at java.lang.Integer.parseInt(Integer.java:499)
       at
org.apache.lucene.analysis.miscellaneous.LimitTokenCountFilterFactory.init(LimitTokenCountFilterFactory.java:48)
       at
org.apache.solr.schema.FieldTypePluginLoader$3.init(FieldTypePluginLoader.java:367)
       at
org.apache.solr.schema.FieldTypePluginLoader$3.init(FieldTypePluginLoader.java:358)
       at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:159)
       ... 29 more

Any ideas?

Best
Dirk

Reply via email to