Technote (troubleshooting)
Problem(Abstract)
In OmniFind Enterprise Edition, my crawler uses a cutom plug-in. The crawler encounters error FFQO0277E with a Java stack trace after adding a custom metadata field.
Symptom
You might see the following messages in the COLLECTION_ID_[DATE].log file in the ES_NODE_ROOT/logs directory.
11/22/11 19:28:54.987 JST [Error] [ES_ERR_EXCEPTION_DEFAULT_MESSAGE] [COLLECTION_ID] [COLLECTION_ID.SEEDLIST_463]
omnifind.sample.ibm.com:6911:44545857:crawler:OSSLogger.java:com.ibm.es.crawler.dominodoc.DominoDocFetcher.isConnected:235
FFQO0277E An exception was caught with the detail 'java.lang.IllegalArgumentException: Argument must be a string declared in com.ibm.es.crawler.plugin.FieldMetadata. Argument : null' and a stack trace of 'java.lang.IllegalArgumentException: Argument must be a string declared in com.ibm.es.crawler.plugin.FieldMetadata. Argument : null
at com.ibm.es.crawler.plugin.FieldMetadata.setResolveConflict(FieldMetadata.java:449)
at com.ibm.es.crawler.plugin.FieldMetadata.<init>(FieldMetadata.java:231)
at com.ibm.es.crawler.publish.util.XMLCreator.convertToCrawledData(XMLCreator.java:443)
at com.ibm.es.crawler.publish.AbstractFormatter.format(AbstractFormatter.java:622)
at com.ibm.es.crawler.publish.Publisher.publish(Publisher.java:473)
at com.ibm.es.crawler.DSThread.doJob(DSThread.java:1060)
at com.ibm.es.crawler.DSActiveThread.doMainTask(DSActiveThread.java:347)
at com.ibm.es.crawler.DSActiveThread.analyzeTask(DSActiveThread.java:662)
at com.ibm.es.crawler.DSActiveThread.handleRequest(DSActiveThread.java:120)
at com.ibm.es.crawler.DSThread.run(DSThread.java:258)
at java.lang.Thread.run(Thread.java:571)
'.
11/22/11 19:58:20.921 JST [Error] [ES_ERR_EXCEPTION_DEFAULT_MESSAGE] [COLLECTION_ID] [COLLECTION_ID.SEEDLIST_463]
omnifind.sample.ibm.com:7940:1874116846:crawler:MonitorXMLElements.java:com.ibm.es.repository.framework.DefaultContent.setProperty(1):685
FFQO0277E An exception was caught with the detail 'java.lang.IllegalArgumentException: Argument must be a string declared in com.ibm.es.crawler.plugin.FieldMetadata. Argument : null' and a stack trace of 'java.lang.IllegalArgumentException: Argument must be a string declared in com.ibm.es.crawler.plugin.FieldMetadata. Argument : null
at com.ibm.es.crawler.plugin.FieldMetadata.setResolveConflict(FieldMetadata.java:449)
at com.ibm.es.crawler.plugin.FieldMetadata.<init>(FieldMetadata.java:231)
at com.ibm.es.crawler.publish.util.XMLCreator.convertToCrawledData(XMLCreator.java:443)
at com.ibm.es.crawler.publish.AbstractFormatter.format(AbstractFormatter.java(Compiled Code))
at com.ibm.es.crawler.publish.Publisher.publish(Publisher.java:473)
at com.ibm.es.crawler.DSThread.doJob(DSThread.java:1060)
at com.ibm.es.crawler.DSActiveThread.doMainTask(DSActiveThread.java:347)
at com.ibm.es.crawler.DSActiveThread.analyzeTask(DSActiveThread.java:662)
at com.ibm.es.crawler.DSActiveThread.handleRequest(DSActiveThread.java:120)
at com.ibm.es.crawler.DSThread.run(DSThread.java:258)
at java.lang.Thread.run(Thread.java:571)
'.
Cause
This issue occurs because the ResolveConflict attribute of the custom metadata field is set to be "null", as shown in the following example:
Sample seedlistcrawler.xml file
---------------------------------------------
<Field Name="__$EntryName$__" Content="False" Enabling="True">
<SearchField Searchable="True" FieldSearchable="True" ParametricSearchable="False" Metadata="True" ResolveConflict="null" ExactMatch="False" Sortable="False" IsContent="False">EntryName</SearchField></Field>
Resolving the problem
To resolve this issue:
- Open the CRAWLER_TYPEcrawler_ext.xml file (such as seedlistcrawler_ext.xml) in the ES_NODE_ROOT/master_config/COLLECTION_ID.CRAWLER_ID directory with a text editor, where CRAWLER_TYPE depends on the type of crawler (seedlist, notes, and so on). If the CRAWLER_TYPEcrawler_ext.xml file does not exist, create it.
- Add <SetAttribute XPath="xxx">MetadataPreferred</SetAttribute> as shown in the following example:
<?xml version="1.0" encoding="UTF-8" ?>
<ExtendedProperties>
<SetAttribute XPath="/Crawler/DocumentInformation/Field[@Name='__$EntryName$__']/SearchField" Name="ResolveConflict">MetadataPreferred</SetAttribute>
</ExtendedProperties>
- Save and close the CRAWLER_TYPEcrawler_ext.xml file.
- Restart the crawler session.
- Perform a full crawl, and parse and index documents.
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.