Author: ssmiweve
Date: 2008-11-21 11:31:16 +0100 (Fri, 21 Nov 2008)
New Revision: 6968
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/MathExpressionSearchCommand.java
Log:
JepTokenEvaluator was being loaded by two separate classloaders.
Fixed by reverting to reflection.
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/MathExpressionSearchCommand.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/MathExpressionSearchCommand.java
2008-11-21 06:22:21 UTC (rev 6967)
+++
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/MathExpressionSearchCommand.java
2008-11-21 10:31:16 UTC (rev 6968)
@@ -17,6 +17,8 @@
*/
package no.sesat.search.mode.command;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import no.sesat.search.query.token.JepTokenEvaluator;
import no.sesat.search.result.BasicResultList;
import no.sesat.search.result.BasicResultItem;
@@ -24,6 +26,7 @@
import java.text.NumberFormat;
import no.sesat.search.query.token.Categories;
import no.sesat.search.query.token.EvaluationException;
+import no.sesat.search.query.token.TokenEvaluator;
import no.sesat.search.result.ResultItem;
import no.sesat.search.result.ResultList;
import org.nfunk.jep.type.Complex;
@@ -36,7 +39,7 @@
public final class MathExpressionSearchCommand extends AbstractSearchCommand {
private static final Logger LOG =
Logger.getLogger(MathExpressionSearchCommand.class);
- private static final String ERR_INTERRUPTED = "Interrupted";
+ private static final String ERR_INTERRUPTED = "Interrupted -- ";
private static final double ZERO_THREASHOLD = 0.00000001D;
/** Default Constructor.
@@ -56,9 +59,9 @@
final BasicResultList<ResultItem> searchResult = new
BasicResultList<ResultItem>();
try{
- final Complex result = ((JepTokenEvaluator)getEngine()
- .getEvaluator(Categories.MATH))
- .getComplex(getQuery().getQueryString());
+ final TokenEvaluator evaluator =
getEngine().getEvaluator(Categories.MATH);
+ final Method getComplex =
evaluator.getClass().getMethod("getComplex", String.class);
+ final Complex result = (Complex) getComplex.invoke(evaluator,
getQuery().getQueryString());
if (result != null) {
final StringBuilder s = new
StringBuilder(f.format(result.re()));
@@ -85,7 +88,13 @@
}
}catch(EvaluationException ie){
- LOG.warn(ERR_INTERRUPTED);
+ LOG.warn(ERR_INTERRUPTED + ie);
+ }catch(NoSuchMethodException nsme){
+ LOG.warn(ERR_INTERRUPTED + nsme);
+ }catch(IllegalAccessException iae){
+ LOG.warn(ERR_INTERRUPTED + iae);
+ }catch(InvocationTargetException ite){
+ LOG.warn(ERR_INTERRUPTED + ite);
}
return searchResult;
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits