SOLR-2116: Fix TikaConfig classloader bug in TikaEntityProcessor

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1072232 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Chris M. Hostetter 2011-02-19 01:49:10 +00:00
parent d279ff8251
commit 3b9482440b
2 changed files with 22 additions and 16 deletions

View File

@ -80,6 +80,10 @@ Bug Fixes
* SOLR-2330: solrconfig.xml files in example-DIH are broken. (Matt Parker, koji)
* SOLR-2116: Fix TikaConfig classloader bug in TikaEntityProcessor
(Martijn van Groningen via hossman)
Other Changes
----------------------

View File

@ -17,15 +17,11 @@
package org.apache.solr.handler.dataimport;
import org.apache.commons.io.IOUtils;
import static org.apache.solr.handler.dataimport.DataImportHandlerException.SEVERE;
import static org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow;
import static org.apache.solr.handler.dataimport.DataImporter.COLUMN;
import static org.apache.solr.handler.dataimport.XPathEntityProcessor.URL;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.sax.ContentHandlerDecorator;
import org.apache.tika.sax.XHTMLContentHandler;
@ -47,6 +43,11 @@ import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import static org.apache.solr.handler.dataimport.DataImportHandlerException.SEVERE;
import static org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow;
import static org.apache.solr.handler.dataimport.DataImporter.COLUMN;
import static org.apache.solr.handler.dataimport.XPathEntityProcessor.URL;
/**
* <p>An implementation of {@link EntityProcessor} which reads data from rich docs
* using <a href="http://tika.apache.org/">Apache Tika</a>
@ -65,20 +66,21 @@ public class TikaEntityProcessor extends EntityProcessorBase {
@Override
protected void firstInit(Context context) {
try {
String tikaConfigFile = context.getResolvedEntityAttribute("tikaConfig");
if (tikaConfigFile == null) {
tikaConfig = TikaConfig.getDefaultConfig();
ClassLoader classLoader = context.getSolrCore().getResourceLoader().getClassLoader();
tikaConfig = new TikaConfig(classLoader);
} else {
File configFile = new File(tikaConfigFile);
if (!configFile.isAbsolute()) {
configFile = new File(context.getSolrCore().getResourceLoader().getConfigDir(), tikaConfigFile);
}
try {
tikaConfig = new TikaConfig(configFile);
}
} catch (Exception e) {
wrapAndThrow (SEVERE, e,"Unable to load Tika Config");
}
}
format = context.getResolvedEntityAttribute("format");
if(format == null)