Author: ssmiweve
Date: 2009-09-18 00:08:54 +0200 (Fri, 18 Sep 2009)
New Revision: 7284

Modified:
   
branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TokenMaskQueryTransformer.java
   
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/OverturePPCSearchCommand.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/AbstractTokenPredicate.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/Categories.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngine.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
   
branches/2.18/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/SynonymQueryTransformer.java
   
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
Log:
strengthen the exception handling from the evaluation process. allows 
evaluations to better fail gracefully if any underlying evaluation service is 
dead.


Modified: 
branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TokenMaskQueryTransformer.java
===================================================================
--- 
branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TokenMaskQueryTransformer.java
    2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TokenMaskQueryTransformer.java
    2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2008) Schibsted ASA
+/* Copyright (2006-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 import no.sesat.search.query.BinaryClause;
 import no.sesat.search.query.LeafClause;
 import no.sesat.search.query.PhraseClause;
+import no.sesat.search.query.token.EvaluationException;
 import no.sesat.search.query.token.TokenEvaluationEngine;
 import no.sesat.search.query.token.TokenPredicate;
 import no.sesat.search.query.transform.TokenMaskQueryTransformerConfig.Mask;
@@ -137,10 +138,13 @@
             final TokenEvaluationEngine engine = 
getContext().getTokenEvaluationEngine();
 
             for (TokenPredicate predicate : config.getPredicates()) {
-
-                if (engine.evaluateClause(predicate, clause)) {
-                    transform = true;
-                    break;
+                try{
+                    if (engine.evaluateClause(predicate, clause)) {
+                        transform = true;
+                        break;
+                    }
+                }catch(EvaluationException ie){
+                    LOG.error("failed to check predicate" + predicate +" with 
evaluateClause " + clause);
                 }
             }
         }
@@ -164,10 +168,13 @@
                 // if the field is the token then mask the field and include 
the term.
 
                 if(null != clause.getField()){
-
-                    if(engine.evaluateTerm(predicate, clause.getField())){
-                        transform = true;
-                        break;
+                    try{
+                        if(engine.evaluateTerm(predicate, clause.getField())){
+                            transform = true;
+                            break;
+                        }
+                    }catch(EvaluationException ie){
+                        LOG.error("failed to check predicate" + predicate +" 
with evaluateTerm " + clause.getField());
                     }
                 }
             }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/OverturePPCSearchCommand.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/OverturePPCSearchCommand.java
 2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/OverturePPCSearchCommand.java
 2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2008) Schibsted ASA
+ * Copyright (2005-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -21,10 +21,8 @@
 import java.io.UnsupportedEncodingException;
 import java.net.SocketTimeoutException;
 import java.net.URLEncoder;
-
 import no.sesat.search.mode.config.OverturePpcCommandConfig;
-import no.sesat.search.query.AndNotClause;
-import no.sesat.search.query.NotClause;
+import no.sesat.search.query.token.EvaluationException;
 import no.sesat.search.query.token.TokenPredicate;
 import no.sesat.search.query.token.TokenPredicateUtility;
 import no.sesat.search.result.BasicResultList;
@@ -32,7 +30,6 @@
 import no.sesat.search.result.OvertureSearchResult;
 import no.sesat.search.result.ResultItem;
 import no.sesat.search.result.ResultList;
-
 import org.apache.log4j.Logger;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -49,8 +46,6 @@
 public class OverturePPCSearchCommand extends AbstractYahooSearchCommand {
 
     private static final String OVERTURE_PPC_ELEMENT = "Listing";
-    /** @deprecated Old school sitesearches **/
-    private static final String SITE_SEARCH_OVERTURE_PARTNER_ID = 
"schibstedsok_xml_no_searchbox_imp2";
 
     private static final Logger LOG = 
Logger.getLogger(OverturePPCSearchCommand.class);
 
@@ -67,6 +62,7 @@
 
         setXmlRestful(
                 new AbstractXmlRestful(cxt) {
+                    @Override
                     public String createRequestURL() {
 
                         final OverturePpcCommandConfig ppcConfig
@@ -112,13 +108,20 @@
      *
      * @return the search result
      */
+    @Override
     public ResultList<ResultItem> execute() {
         // Need to rerun the token evaluation stuff on the transformed query
         // The transformed query does not contain site: and nyhetskilde: which
         // could have prevented exact matching in the previous evaluation.
         final ReconstructedQuery rq = createQuery(getTransformedQuery());
+        final TokenPredicate predicate = 
TokenPredicateUtility.getTokenPredicate("PPCTOPLIST").exactPeer();
+        try {
+            top = rq.getEngine()
+                    .evaluateQuery(predicate, rq.getQuery());
 
-        top = 
rq.getEngine().evaluateQuery(TokenPredicateUtility.getTokenPredicate("PPCTOPLIST").exactPeer(),
 rq.getQuery());
+        } catch (EvaluationException ex) {
+            LOG.error("failed to check predicate" + predicate +" with 
evaluateQuery " + rq.getQuery());
+        }
 
         try {
             final Document doc = getXmlRestful().getXmlResult();
@@ -156,6 +159,7 @@
         }
     }
 
+    @Override
     protected BasicResultItem createItem(final Element ppcListing) {
 
         final BasicResultItem item = new BasicResultItem();
@@ -173,17 +177,6 @@
     }
 
     @Override
-    protected String getPartnerId(){
-
-        // FIXME. When the site searches have their own context
-        // remove this and use the property partnerId of 
OverturePPCConfiguration
-        // instead.
-        return null != getParameter("ss")
-                ? SITE_SEARCH_OVERTURE_PARTNER_ID
-                : super.getPartnerId();
-    }
-
-    @Override
     protected String getAffilDataParameter() {
         return super.getAffilDataParameter();
     }

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/AbstractTokenPredicate.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/AbstractTokenPredicate.java
       2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/AbstractTokenPredicate.java
       2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,4 +1,4 @@
-/* Copyright (2008) Schibsted ASA
+/* Copyright (2008-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -34,7 +34,7 @@
 
     // Static --------------------------------------------------------
 
-    static boolean evaluate(final TokenPredicate token, final Object 
evalFactory) {
+    static boolean evaluate(final TokenPredicate token, final Object 
evalFactory) throws EvaluationException{
 
         if (!(evalFactory instanceof TokenEvaluationEngine)) {
             throw new 
IllegalArgumentException(ERR_ARG_NOT_TOKEN_EVALUATOR_FACTORY);
@@ -65,9 +65,16 @@
         return name();
     }
 
-    public boolean evaluate(final Object evalFactory) {
+    @Override
+    public boolean evaluate(final Object evalFactory)/* throws 
EvaluationRuntimeException*/{
 
-        return evaluate(this, evalFactory);
+        try{
+            return evaluate(this, evalFactory);
+        }catch(EvaluationException ie){
+            // unfortunately Predicate.evaluate(..) does not declare to throw 
any checked exceptions.
+            //  so we must sneak the VeryFastListQueryException through as a 
run-time exception.
+            throw new EvaluationRuntimeException(ie);
+        }
     }
 
     // Public --------------------------------------------------------

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/Categories.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/Categories.java
   2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/Categories.java
   2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,4 +1,4 @@
-/* Copyright (2008) Schibsted ASA
+/* Copyright (2008-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -549,11 +549,19 @@
         TokenPredicateImpl.TOKENS.add(this);
     }
 
-    public boolean evaluate(final Object evalFactory) {
+    @Override
+    public boolean evaluate(final Object evalFactory)/* throws 
EvaluationRuntimeException*/{
 
-        return AbstractTokenPredicate.evaluate(this, evalFactory);
+        try{
+            return AbstractTokenPredicate.evaluate(this, evalFactory);
+        }catch(EvaluationException ie){
+            // unfortunately Predicate.evaluate(..) does not declare to throw 
any checked exceptions.
+            //  so we must sneak the VeryFastListQueryException through as a 
run-time exception.
+            throw new EvaluationRuntimeException(ie);
+        }
     }
 
+    @Override
     public TokenPredicate exactPeer() {
 
         return impl.exactPeer();

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngine.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngine.java
        2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngine.java
        2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2008) Schibsted ASA
+ * Copyright (2005-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -56,12 +56,15 @@
      * Evaluator that will return false under all circumstances.
      */
     static final TokenEvaluator ALWAYS_FALSE_EVALUATOR = new TokenEvaluator() {
+        @Override
         public boolean evaluateToken(final TokenPredicate token, final String 
term, final String query) {
             return false;
         }
+        @Override
         public boolean isQueryDependant(final TokenPredicate predicate) {
             return false;
         }
+        @Override
         public Set<String> getMatchValues(final TokenPredicate token, final 
String term) {
             return Collections.<String>emptySet();
         }
@@ -71,12 +74,15 @@
      * Evaluator that will return true under all circumstances.
      */
     static final TokenEvaluator ALWAYS_TRUE_EVALUATOR = new TokenEvaluator() {
+        @Override
         public boolean evaluateToken(final TokenPredicate token, final String 
term, final String query) {
             return true;
         }
+        @Override
         public boolean isQueryDependant(final TokenPredicate predicate) {
             return false;
         }
+        @Override
         public Set<String> getMatchValues(final TokenPredicate token, final 
String term) {
             return Collections.<String>emptySet();
         }
@@ -86,13 +92,16 @@
      * Evaluator that will throws an EvaluationException under all 
circumstances.
      */
     static final TokenEvaluator DEAD_EVALUATOR = new TokenEvaluator() {
+        @Override
         public boolean evaluateToken(final TokenPredicate token, final String 
term, final String query) {
             throw new EvaluationRuntimeException(
                     new EvaluationException("DEAD_EVALUATOR", null));
         }
+        @Override
         public boolean isQueryDependant(final TokenPredicate predicate) {
             return false;
         }
+        @Override
         public Set<String> getMatchValues(final TokenPredicate token, final 
String term) {
             return Collections.<String>emptySet();
         }
@@ -148,7 +157,7 @@
      * @param token
      * @return
      */
-    boolean evaluate(TokenPredicate token);
+    boolean evaluate(TokenPredicate token) throws EvaluationException;
 
     /** Utility method to perform one-off evaluations on terms from non 
RunningQuery threads.
      * Typically used by TokenTransformers or performing evaluations on 
non-clause oriented strings.
@@ -157,7 +166,7 @@
      * @param term
      * @return
      */
-    boolean evaluateTerm(TokenPredicate predicate, String term);
+    boolean evaluateTerm(TokenPredicate predicate, String term) throws 
EvaluationException;
 
     /** Utility method to perform one-off evaluations on clauses from non 
RunningQuery threads.
      * Typically used by TokenTransformers or performing evaluations on 
non-clause oriented strings.
@@ -166,7 +175,7 @@
      * @param clause
      * @return
      */
-    boolean evaluateClause(TokenPredicate predicate, Clause clause);
+    boolean evaluateClause(TokenPredicate predicate, Clause clause) throws 
EvaluationException;
 
     /** Utility method to perform one-off evaluations on queries from non 
RunningQuery threads.
      * Typically used by TokenTransformers or performing evaluations on 
non-clause oriented strings.
@@ -175,7 +184,7 @@
      * @param query
      * @return
      */
-    boolean evaluateQuery(TokenPredicate predicate, Query query);
+    boolean evaluateQuery(TokenPredicate predicate, Query query) throws 
EvaluationException;
 
     /**
      * Getter for property state.

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
    2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
    2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2008) Schibsted ASA
+ * Copyright (2005-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -25,7 +25,6 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
-import no.sesat.commons.ioc.BaseContext;
 import no.sesat.commons.ioc.ContextWrapper;
 import no.sesat.search.query.Clause;
 import no.sesat.search.query.Query;
@@ -89,6 +88,7 @@
 
     // Public -----------------------------------------------------
 
+    @Override
     public TokenEvaluator getEvaluator(final TokenPredicate token) throws 
EvaluationException {
 
         TokenEvaluator result = null;
@@ -137,86 +137,94 @@
         return result;
     }
 
+    @Override
     public String getQueryString() {
         return context.getQueryString();
     }
 
+    @Override
     public Site getSite() {
         return context.getSite();
     }
 
-    public synchronized boolean evaluateTerm(final TokenPredicate predicate, 
final String term) {
+    @Override
+    public synchronized boolean evaluateTerm(
+            final TokenPredicate predicate,
+            final String term) throws EvaluationException{
 
         return evaluateInAnyThread(predicate, new EvaluationState(term, 
Collections.EMPTY_SET, Collections.EMPTY_SET));
     }
 
-    public synchronized boolean evaluateClause(final TokenPredicate predicate, 
final Clause clause) {
+    @Override
+    public synchronized boolean evaluateClause(
+            final TokenPredicate predicate,
+            final Clause clause) throws EvaluationException{
 
         return evaluateInAnyThread(predicate, new EvaluationState(clause));
     }
 
-    public synchronized boolean evaluateQuery(final TokenPredicate predicate, 
final Query query) {
+    @Override
+    public synchronized boolean evaluateQuery(
+            final TokenPredicate predicate,
+            final Query query) throws EvaluationException{
 
         return evaluateInAnyThread(predicate, query.getEvaluationState());
     }
 
-    public boolean evaluate(final TokenPredicate token){
+    @Override
+    public boolean evaluate(final TokenPredicate token) throws 
EvaluationException{
 
         // process
         if(Thread.currentThread() != getOwningThread()){
             throw new 
IllegalStateException(ERR_METHOD_CLOSED_TO_OTHER_THREADS);
         }
 
-        try{
+        // check that the evaluation hasn't already been done
+        // we can only check against the knownPredicates because with the 
possiblePredicates we are not sure whether
+        //  the evaluation is for the building of the known and possible 
predicate list
+        //    (during query parsing)(in which
+        //  case we could perform the check) or if we are scoring and need to 
know if the
+        //    possible predicate is really
+        //  applicable now (in the context of the whole query).
+        final Set<TokenPredicate> knownPredicates = 
getState().getKnownPredicates();
+        if(null != knownPredicates && knownPredicates.contains(token)){
+            return true;
+        }
 
-            // check that the evaluation hasn't already been done
-            // we can only check against the knownPredicates because with the 
possiblePredicates we are not sure whether
-            //  the evaluation is for the building of the known and possible 
predicate list
-            //    (during query parsing)(in which
-            //  case we could perform the check) or if we are scoring and need 
to know if the
-            //    possible predicate is really
-            //  applicable now (in the context of the whole query).
-            final Set<TokenPredicate> knownPredicates = 
getState().getKnownPredicates();
-            if(null != knownPredicates && knownPredicates.contains(token)){
-                return true;
-            }
+        final TokenEvaluator evaluator = getEvaluator(token);
 
-            final TokenEvaluator evaluator = getEvaluator(token);
+        if(null != getState().getTerm()){
 
-            if(null != getState().getTerm()){
+            // Single term or clause evaluation
+            return evaluator.evaluateToken(token, getState().getTerm(), 
getQueryString());
 
-                // Single term or clause evaluation
-                return evaluator.evaluateToken(token, getState().getTerm(), 
getQueryString());
+        }else if(null != getState().getQuery()){
 
-            }else if(null != getState().getQuery()){
+            // Whole query evaluation
+            return getState().getPossiblePredicates().contains(token)
+                    && evaluator.evaluateToken(token, null, getQueryString());
 
-                // Whole query evaluation
-                return getState().getPossiblePredicates().contains(token)
-                        && evaluator.evaluateToken(token, null, 
getQueryString());
-
-            }
-
-        }catch(EvaluationException ie){
-            // unfortunately Predicate.evaluate(..) does not declare to throw 
any checked exceptions.
-            //  so we must sneak the VeryFastListQueryException through as a 
run-time exception.
-            throw new EvaluationRuntimeException(ie);
         }
 
         throw new IllegalStateException(ERR_ENGINE_MISSING_STATE);
     }
 
 
+    @Override
     public State getState() {
         return state;
     }
 
+    @Override
     public void setState(final State state) {
         this.state = state;
     }
 
     // private -----------------------------------------------------
 
-    private boolean evaluateInAnyThread(final TokenPredicate predicate, final 
State state) {
+    private boolean evaluateInAnyThread(
+            final TokenPredicate predicate,
+            final State state) throws EvaluationException{
 
         final Thread origThread = owningThread;
         try{

Modified: 
branches/2.18/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/SynonymQueryTransformer.java
===================================================================
--- 
branches/2.18/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/SynonymQueryTransformer.java
        2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/SynonymQueryTransformer.java
        2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2008) Schibsted ASA
+/* Copyright (2006-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -40,13 +40,14 @@
 import no.sesat.search.query.UnaryClause;
 import no.sesat.search.query.Query;
 import no.sesat.search.query.token.Categories;
+import no.sesat.search.query.token.EvaluationException;
 import no.sesat.search.query.token.TokenPredicate;
 import no.sesat.search.query.token.TokenPredicateUtility;
 import org.apache.log4j.Logger;
 
 /**
+ * @todo move out to generic.sesam/query-transform-control
  *
- *
  * @version $Id$
  */
 public final class SynonymQueryTransformer extends AbstractQueryTransformer {
@@ -173,12 +174,17 @@
         for (TokenPredicate predicate : getPredicates()) {
 
             boolean applicable = 
clause.getKnownPredicates().contains(predicate);
-            // possible predicates depend on placement of terms within the 
query.
-            //  this state can't be assigned to the terms as they are 
immutable and
-            //   re-used across multiple queries at any given time.
-            applicable |= clause.getPossiblePredicates().contains(predicate)
-                    && 
getContext().getTokenEvaluationEngine().evaluateTerm(predicate, 
clause.getTerm());
+            try{
+                // possible predicates depend on placement of terms within the 
query.
+                //  this state can't be assigned to the terms as they are 
immutable and
+                //   re-used across multiple queries at any given time.
+                applicable |= 
clause.getPossiblePredicates().contains(predicate)
+                        && 
getContext().getTokenEvaluationEngine().evaluateTerm(predicate, 
clause.getTerm());
 
+            }catch(EvaluationException ie){
+                LOG.error("failed to check possible predicate" + predicate +" 
with evaluateTerm " + clause.getTerm());
+            }
+
             if (applicable) {
 
                 if (isSynonym(getContext().getTransformedTerms().get(clause))) 
{

Modified: 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
===================================================================
--- 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2009-09-17 08:46:06 UTC (rev 7283)
+++ 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2009-09-17 22:08:54 UTC (rev 7284)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2008) Schibsted ASA
+/* Copyright (2006-2009) Schibsted ASA
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -74,6 +74,7 @@
 import no.sesat.search.mode.config.querybuilder.QueryBuilderConfig;
 import no.sesat.search.mode.config.querybuilder.QueryBuilderConfig.Controller;
 import no.sesat.search.query.token.DeadTokenEvaluationEngineImpl;
+import no.sesat.search.query.token.EvaluationException;
 import no.sesat.search.query.token.TokenPredicateUtility;
 import no.sesat.search.site.config.SiteClassLoaderFactory;
 import no.sesat.search.site.config.Spi;
@@ -175,9 +176,11 @@
 
         // A simple context for QueryTransformerFactory.Context
         qtfContext = new QueryTransformerFactory.Context() {
+                @Override
                 public Site getSite() {
                     return context.getDataModel().getSite().getSite();
                 }
+                @Override
                 public BytecodeLoader newBytecodeLoader(final SiteContext 
site, final String name, final String jar) {
                     return context.newBytecodeLoader(site, name, jar);
                 }
@@ -186,26 +189,33 @@
         // Little more complicated context for QueryBuilder.Context (can be 
used for QueryTransformer.Context too)
         // dont use ContextWrapper.wrap(..) here as this context really gets 
hammered and we want to avoid reflection
         queryBuilderContext = new QueryBuilder.Context(){
+                @Override
                 public Site getSite() {
                     return datamodel.getSite().getSite();
                 }
                 /** @deprecated {...@inheritdoc} **/
+                @Override
                 public String getTransformedQuery() {
                     return transformedQuery;
                 }
+                @Override
                 public Query getQuery() {
                     // Important that initialiseQuery() has been called first
                     return getSearchCommandsQuery();
                 }
+                @Override
                 public TokenEvaluationEngine getTokenEvaluationEngine() {
                     return engine;
                 }
+                @Override
                 public void visitXorClause(final Visitor visitor, final 
XorClause clause) {
                     searchCommandsVisitXorClause(visitor, clause);
                 }
+                @Override
                 public String getFieldFilter(final LeafClause clause) {
                     return getSearchCommandsFieldFilter(clause);
                 }
+                @Override
                 public String getTransformedTerm(final Clause clause) {
 
                     // unable to delegate to getTransformedTerm as it escapes 
reserved words
@@ -213,26 +223,33 @@
                     final String transformedTerm = 
transformedTerms.get(clause);
                     return null != transformedTerm ? transformedTerm : 
clause.getTerm();
                 }
+                @Override
                 public Collection<String> getReservedWords() {
 
                     return getSearchCommandsReservedWords();
                 }
+                @Override
                 public String escape(final String word) {
 
                     return searchCommandsEscape(word);
                 }
+                @Override
                 public Map<Clause, String> getTransformedTerms() {
                     return getSearchCommandsTransformedTerms();
                 }
+                @Override
                 public DocumentLoader newDocumentLoader(SiteContext siteCxt, 
String resource, DocumentBuilder builder) {
                     return cxt.newDocumentLoader(siteCxt, resource, builder);
                 }
+                @Override
                 public PropertiesLoader newPropertiesLoader(SiteContext 
siteCxt, String resource, Properties properties) {
                     return cxt.newPropertiesLoader(siteCxt, resource, 
properties);
                 }
+                @Override
                 public BytecodeLoader newBytecodeLoader(SiteContext 
siteContext, String className, String jarFileName) {
                     return cxt.newBytecodeLoader(siteContext, className, 
jarFileName);
                 }
+                @Override
                 public DataModel getDataModel() {
                     return cxt.getDataModel();
                 }
@@ -314,6 +331,7 @@
 
     // SearchCommand overrides 
---------------------------------------------------
 
+    @Override
     public BaseSearchConfiguration getSearchConfiguration() {
         return baseSearchConfiguration;
     }
@@ -323,6 +341,7 @@
      *
      * @return
      */
+    @Override
     public ResultList<ResultItem> call() {
 
         MDC.put(Site.NAME_KEY, datamodel.getSite().getSite().getName());
@@ -384,6 +403,7 @@
      *  Inserts an "-1" result list. And does the result handling on it.
      * Returns true if cancellation action was taken.
      */
+    @Override
     public synchronized boolean handleCancellation() {
 
         if (!completed) {
@@ -403,6 +423,7 @@
     /** Has the command been cancelled.
      * Calling this method only makes sense once the call() method has been.
      **/
+    @Override
     public synchronized boolean isCancelled(){
         return null == thread && !completed;
     }
@@ -601,6 +622,7 @@
                 : 0;
     }
 
+    @Override
     public boolean isPaginated(){
 
         return offsetParameter.isActive();
@@ -620,6 +642,7 @@
         return userSortByParameter.getValue();
     }
 
+    @Override
     public boolean isUserSortable(){
 
         return userSortByParameter.isActive();
@@ -756,6 +779,7 @@
 
             // queryStr parser
             final QueryParser parser = new QueryParserImpl(new 
AbstractQueryParserContext() {
+                @Override
                 public TokenEvaluationEngine getTokenEvaluationEngine() {
                     return newEngine;
                 }
@@ -821,6 +845,9 @@
                             field = fieldFilters.get(fieldFilter);
                             break;
                         }
+
+                    }catch(EvaluationException ie){
+                        LOG.error("failed to check possible predicate with 
term " + clause.getField());
                     } catch (IllegalArgumentException iae) {
                         LOG.trace(TRACE_NOT_TOKEN_PREDICATE + fieldFilter);
                     }

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to