Author: ssmiweve
Date: 2008-04-25 16:22:07 +0200 (Fri, 25 Apr 2008)
New Revision: 6548

Modified:
   
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
   
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/TokenPredicate.java
   
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
Log:
SEARCH-4665 - NPE at TokenEvaluationEngineImpl.evaluateImpl


Modified: 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
===================================================================
--- 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
       2008-04-25 14:18:39 UTC (rev 6547)
+++ 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
       2008-04-25 14:22:07 UTC (rev 6548)
@@ -135,9 +135,16 @@
                         final String tokenName = 
evaluator.getAttribute("token");
                         LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        final TokenPredicate token = null != 
TokenPredicate.Static.getTokenPredicate(tokenName)
-                                ? 
TokenPredicate.Static.getTokenPredicate(tokenName)
-                                : 
TokenPredicate.Static.createAnonymousTokenPredicate(tokenName, 
TokenPredicate.Type.REGEX);
+                        TokenPredicate token;
+                        try{
+                            token = 
TokenPredicate.Static.getTokenPredicate(tokenName);
+                            
+                        }catch(IllegalArgumentException iae){
+                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                            token = 
TokenPredicate.Static.createAnonymousTokenPredicate(
+                                    tokenName, 
+                                    TokenPredicate.Type.REGEX);
+                        }
 
                         final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
                         LOG.info(" ->[EMAIL PROTECTED]: " + queryDep);

Modified: 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/TokenPredicate.java
===================================================================
--- 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/TokenPredicate.java
       2008-04-25 14:18:39 UTC (rev 6547)
+++ 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/TokenPredicate.java
       2008-04-25 14:22:07 UTC (rev 6548)
@@ -596,8 +596,9 @@
          *
          * @param name the name of the TokenPredicate to find.
          * @return the TokenPredicate.
+         * @throws IllegalArgumentException when no such anonymous token by 
the name exists.
          */
-        public static TokenPredicate getTokenPredicate(final String name){
+        public static TokenPredicate getTokenPredicate(final String name) 
throws IllegalArgumentException{
 
             try{
                 return Categories.valueOf(name);

Modified: 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
===================================================================
--- 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
       2008-04-25 14:18:39 UTC (rev 6547)
+++ 
branches/2.17/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
       2008-04-25 14:22:07 UTC (rev 6548)
@@ -320,9 +320,16 @@
                         final String tokenName = list.getAttribute("token");
                         LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        final TokenPredicate token = null != 
TokenPredicate.Static.getTokenPredicate(tokenName)
-                                ? 
TokenPredicate.Static.getTokenPredicate(tokenName)
-                                : 
TokenPredicate.Static.createAnonymousTokenPredicate(tokenName, 
TokenPredicate.Type.FAST);
+                        TokenPredicate token;
+                        try{
+                            token = 
TokenPredicate.Static.getTokenPredicate(tokenName);
+                            
+                        }catch(IllegalArgumentException iae){
+                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                            token = 
TokenPredicate.Static.createAnonymousTokenPredicate(
+                                    tokenName, 
+                                    TokenPredicate.Type.FAST);
+                        }
 
                         final String[] listNameArr = 
list.getAttribute("list-name").split(",");
                         LOG.info(" ->lists: " + 
list.getAttribute("list-name"));

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

Reply via email to