Author: ssmiweve
Date: 2008-03-06 11:29:32 +0100 (Thu, 06 Mar 2008)
New Revision: 6228

Modified:
   
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
   
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
Log:
SEARCH-4305 - Unable to create RunningQuery's query due to ParseException of ?

Modified: 
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
===================================================================
--- 
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
 2008-03-05 11:16:27 UTC (rev 6227)
+++ 
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
 2008-03-06 10:29:32 UTC (rev 6228)
@@ -50,6 +50,8 @@
 
     // Constants -----------------------------------------------------
     
+    public static final String SKIP_REGEX;
+    
     /** Protected so an .jj file implementing this class can reuse.
      **/
     protected static final Logger LOG = 
Logger.getLogger(AbstractQueryParser.class);
@@ -76,6 +78,18 @@
 
     // Static --------------------------------------------------------
 
+    static{
+        
+        // build our skip regular expression
+        final StringBuilder builder = new StringBuilder();
+        for(char[] range : QueryParser.SKIP_CHARACTER_RANGES){
+            builder.append("[\\" + range[0] + "-\\" + range[1] + "]|");
+        }
+        // remove trailing '|'
+        builder.setLength(builder.length() - 1);
+        // our skip regular expression
+        SKIP_REGEX = '(' + builder.toString() + ')';
+    }
 
     // Constructors --------------------------------------------------
     
@@ -96,13 +110,15 @@
      */
     public Query getQuery(){
         if( query == null ){
-            final String queryStr = context.getQueryString();
+            final String q = context.getQueryString();
+            
             if( context == null ){
                 throw new IllegalStateException(ERR_EMPTY_CONTEXT);
             }
+            
             final ParentFinder parentFinder = new ParentFinder();
             try{
-                if( null != queryStr && 0 < queryStr.trim().length() && 
!"*".equals(queryStr) ){
+                if( null != q && 0 < q.replaceAll(SKIP_REGEX, 
"").trim().length() && !"*".equals(q) ){
 
                     // Uncomment the following line, and comment the line 
after than, to disable RotationAlternation.
                     //final Clause root = parse();
@@ -112,16 +128,16 @@
                 }
 
             }catch(ParseException pe){
-                LOG.warn(ERR_PARSING + queryStr, pe);
+                LOG.warn(ERR_PARSING + q, pe);
                 // also let product department know these queries are not 
working
                 PRODUCT_LOG.info("<invalid-query type=\"ParseException\">" 
-                        + StringEscapeUtils.escapeXml(queryStr) + 
"</invalid-query>");
+                        + StringEscapeUtils.escapeXml(q) + "</invalid-query>");
                 
             } catch (TokenMgrError tme)  {
-                LOG.error(ERR_PARSING + queryStr, tme);
+                LOG.error(ERR_PARSING + q, tme);
                 // also let product department know these queries are not 
working
                 PRODUCT_LOG.info("<invalid-query type=\"TokenMgrError\">" 
-                        + StringEscapeUtils.escapeXml(queryStr) + 
"</invalid-query>");
+                        + StringEscapeUtils.escapeXml(q) + "</invalid-query>");
             }
 
             if( query == null ){

Modified: 
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
===================================================================
--- 
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
       2008-03-05 11:16:27 UTC (rev 6227)
+++ 
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
       2008-03-06 10:29:32 UTC (rev 6228)
@@ -47,6 +47,7 @@
 import no.sesat.search.http.HTTPClient;
 import no.sesat.search.query.QueryStringContext;
 import no.sesat.search.query.parser.QueryParser;
+import static no.sesat.search.query.parser.AbstractQueryParser.SKIP_REGEX;
 import no.sesat.search.site.Site;
 import no.sesat.search.site.SiteContext;
 
@@ -96,7 +97,6 @@
     private static final int REFRESH_PERIOD = 60; // one minute
     private static final int CACHE_CAPACITY = 100; // smaller than usual as 
each entry can contain up to 600 values!
     
-    private static final String SKIP_REGEX;
     private static final String OPERATOR_REGEX;
 
     // Attributes ----------------------------------------------------
@@ -110,16 +110,7 @@
     static{
         CACHE.setCacheCapacity(CACHE_CAPACITY);
         
-        // build our skip regular expression
-        final StringBuilder builder = new StringBuilder();
-        for(char[] range : QueryParser.SKIP_CHARACTER_RANGES){
-            builder.append("[\\" + range[0] + "-\\" + range[1] + "]|");
-        }
-        // remove trailing '|'
-        builder.setLength(builder.length() - 1);
-        // our skip regular expression
-        SKIP_REGEX = '(' + builder.toString() + ')';
-
+        // build our operator regular expression
         final StringBuilder operatorRegexpBuilder = new StringBuilder();
 
         operatorRegexpBuilder.append('(');

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

Reply via email to