Author: ssmiweve
Date: 2008-11-28 20:51:03 +0100 (Fri, 28 Nov 2008)
New Revision: 7001

Modified:
   
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
   
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
   
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
   
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/SolrEvaluatorFactory.java
   
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
Log:
performance improvements:
 check for empty instance before going into writeLock
 configure timeout on waiting for construction thread

Modified: 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
===================================================================
--- 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
       2008-11-28 11:52:30 UTC (rev 7000)
+++ 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/FastQueryMatchingEvaluatorFactory.java
       2008-11-28 19:51:03 UTC (rev 7001)
@@ -25,6 +25,8 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import no.sesat.search.site.SiteKeyedFactoryInstantiationException;
 import org.apache.log4j.Logger;
 import org.apache.log4j.MDC;
@@ -109,7 +111,7 @@
     private VeryFastTokenEvaluator getFastEvaluator() throws 
EvaluationException {
 
         try {
-            fastEvaluatorCreator.get();
+            fastEvaluatorCreator.get(1000, TimeUnit.MILLISECONDS);
 
         } catch (InterruptedException ex) {
             LOG.error(ERR_FAST_EVALUATOR_CREATOR_INTERRUPTED, ex);
@@ -117,6 +119,9 @@
         } catch (ExecutionException ex) {
             LOG.error(ERR_FAST_EVALUATOR_CREATOR_INTERRUPTED, ex);
             throw new 
EvaluationException(ERR_FAILED_CONSTRUCTING_FAST_EVALUATOR, ex);
+        } catch (TimeoutException ex) {
+            LOG.error(ERR_FAST_EVALUATOR_CREATOR_INTERRUPTED, ex);
+            throw new 
EvaluationException(ERR_FAILED_CONSTRUCTING_FAST_EVALUATOR, ex);
         }
         if( null == fastEvaluator ){
             throw new 
EvaluationException(ERR_FAILED_CONSTRUCTING_FAST_EVALUATOR, new 
NullPointerException());

Modified: 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
===================================================================
--- 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
     2008-11-28 11:52:30 UTC (rev 7000)
+++ 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/JepEvaluatorFactory.java
     2008-11-28 19:51:03 UTC (rev 7001)
@@ -95,58 +95,59 @@
                 ));
         }
 
-        try{
-            EVALUATORS_LOCK.writeLock().lock();
+        if(null == EVALUATORS.get(site)){
 
-            if(null == EVALUATORS.get(site)){
+            try{
+                EVALUATORS_LOCK.writeLock().lock();
 
-                // create map entry for this site
-                EVALUATORS.put(site, new 
HashMap<TokenPredicate,JepTokenEvaluator>());
 
-                final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-                factory.setValidating(false);
-                final DocumentBuilder builder = factory.newDocumentBuilder();
+                    // create map entry for this site
+                    EVALUATORS.put(site, new 
HashMap<TokenPredicate,JepTokenEvaluator>());
 
-                final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
JEP_EVALUATOR_XMLFILE, builder);
+                    final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                    factory.setValidating(false);
+                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
 
-                loader.abut();
-                LOG.info("Parsing " + JEP_EVALUATOR_XMLFILE + " started");
-                final Document doc = loader.getDocument();
+                    final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
JEP_EVALUATOR_XMLFILE, builder);
 
-                assert null != doc : "No document loaded for " + 
site.getName();
+                    loader.abut();
+                    LOG.info("Parsing " + JEP_EVALUATOR_XMLFILE + " started");
+                    final Document doc = loader.getDocument();
 
-                final Element root = doc.getDocumentElement();
-                if(null != root){
-                    final NodeList evaluators = 
root.getElementsByTagName("evaluator");
-                    for (int i = 0; i < evaluators.getLength(); ++i) {
+                    assert null != doc : "No document loaded for " + 
site.getName();
 
-                        final Element evaluator = (Element) evaluators.item(i);
+                    final Element root = doc.getDocumentElement();
+                    if(null != root){
+                        final NodeList evaluators = 
root.getElementsByTagName("evaluator");
+                        for (int i = 0; i < evaluators.getLength(); ++i) {
 
-                        final String tokenName = 
evaluator.getAttribute("token");
-                        LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
+                            final Element evaluator = (Element) 
evaluators.item(i);
 
-                        TokenPredicate token;
-                        try{
-                            token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
+                            final String tokenName = 
evaluator.getAttribute("token");
+                            LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        }catch(IllegalArgumentException iae){
-                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
-                            token = 
TokenPredicateUtility.createAnonymousTokenPredicate(
-                                    tokenName);
-                        }
+                            TokenPredicate token;
+                            try{
+                                token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
 
-                        final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
-                        LOG.info(" ->[EMAIL PROTECTED]: " + queryDep);
+                            }catch(IllegalArgumentException iae){
+                                LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                                token = 
TokenPredicateUtility.createAnonymousTokenPredicate(
+                                        tokenName);
+                            }
 
-                        final JepTokenEvaluator jepTokenEvaluator = new 
JepTokenEvaluator("*", queryDep);
-                        EVALUATORS.get(site).put(token, jepTokenEvaluator);
+                            final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
+                            LOG.info(" ->[EMAIL PROTECTED]: " + queryDep);
 
+                            final JepTokenEvaluator jepTokenEvaluator = new 
JepTokenEvaluator("*", queryDep);
+                            EVALUATORS.get(site).put(token, jepTokenEvaluator);
+
+                        }
                     }
-                }
-                LOG.info("Parsing " + JEP_EVALUATOR_XMLFILE + " finished");
+                    LOG.info("Parsing " + JEP_EVALUATOR_XMLFILE + " finished");
+            }finally{
+                EVALUATORS_LOCK.writeLock().unlock();
             }
-        }finally{
-            EVALUATORS_LOCK.writeLock().unlock();
         }
     }
 

Modified: 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
===================================================================
--- 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
  2008-11-28 11:52:30 UTC (rev 7000)
+++ 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/RegExpEvaluatorFactory.java
  2008-11-28 19:51:03 UTC (rev 7001)
@@ -99,76 +99,77 @@
                 ));
         }
 
-        try{
-            EVALUATORS_LOCK.writeLock().lock();
+        if(null == EVALUATORS.get(site)){
 
-            if(null == EVALUATORS.get(site)){
-                // create map entry for this site
-                EVALUATORS.put(site, new 
HashMap<TokenPredicate,RegExpTokenEvaluator>());
+            try{
+                EVALUATORS_LOCK.writeLock().lock();
 
+                    // create map entry for this site
+                    EVALUATORS.put(site, new 
HashMap<TokenPredicate,RegExpTokenEvaluator>());
 
-                final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-                factory.setValidating(false);
-                final DocumentBuilder builder = factory.newDocumentBuilder();
-                final DocumentLoader loader
-                        = cxt.newDocumentLoader(cxt, REGEXP_EVALUATOR_XMLFILE, 
builder);
 
-                loader.abut();
-                LOG.info("Parsing " + REGEXP_EVALUATOR_XMLFILE + " started");
-                final Document doc = loader.getDocument();
+                    final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                    factory.setValidating(false);
+                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
+                    final DocumentLoader loader
+                            = cxt.newDocumentLoader(cxt, 
REGEXP_EVALUATOR_XMLFILE, builder);
 
-                assert null != doc : "No document loaded for " + 
site.getName();
+                    loader.abut();
+                    LOG.info("Parsing " + REGEXP_EVALUATOR_XMLFILE + " 
started");
+                    final Document doc = loader.getDocument();
 
-                final Element root = doc.getDocumentElement();
-                if(null != root){
-                    final NodeList evaluators = 
root.getElementsByTagName("evaluator");
-                    for (int i = 0; i < evaluators.getLength(); ++i) {
+                    assert null != doc : "No document loaded for " + 
site.getName();
 
-                        final Element evaluator = (Element) evaluators.item(i);
+                    final Element root = doc.getDocumentElement();
+                    if(null != root){
+                        final NodeList evaluators = 
root.getElementsByTagName("evaluator");
+                        for (int i = 0; i < evaluators.getLength(); ++i) {
 
-                        final String tokenName = 
evaluator.getAttribute("token");
-                        LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
+                            final Element evaluator = (Element) 
evaluators.item(i);
 
-                        TokenPredicate token;
-                        try{
-                            token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
+                            final String tokenName = 
evaluator.getAttribute("token");
+                            LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        }catch(IllegalArgumentException iae){
-                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
-                            token = 
TokenPredicateUtility.createAnonymousTokenPredicate(
-                                    tokenName);
-                        }
+                            TokenPredicate token;
+                            try{
+                                token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
 
-                        final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
-                        LOG.info(" ->[EMAIL PROTECTED]: " + queryDep);
+                            }catch(IllegalArgumentException iae){
+                                LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                                token = 
TokenPredicateUtility.createAnonymousTokenPredicate(
+                                        tokenName);
+                            }
 
-                        final Collection<Pattern> compiled = new 
ArrayList<Pattern>();
+                            final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
+                            LOG.info(" ->[EMAIL PROTECTED]: " + queryDep);
 
-                        final NodeList patterns = 
evaluator.getElementsByTagName("pattern");
-                        for (int j = 0; j < patterns.getLength(); ++j) {
-                            final Element pattern = (Element) patterns.item(j);
+                            final Collection<Pattern> compiled = new 
ArrayList<Pattern>();
 
-                            final String expression = 
pattern.getFirstChild().getNodeValue();
-                            LOG.info(" --->pattern: " + expression);
+                            final NodeList patterns = 
evaluator.getElementsByTagName("pattern");
+                            for (int j = 0; j < patterns.getLength(); ++j) {
+                                final Element pattern = (Element) 
patterns.item(j);
 
-                            // (^|\s) or ($|\s) is neccessary to avoid 
matching fragments of words.
-                            final String prefix = expression.startsWith("^") ? 
"" : "(^|\\s)";
-                            final String suffix = expression.endsWith("$") ? 
"" : "(\\:|$|\\s)";
-                            // compile pattern
-                            final Pattern p = Pattern.compile(prefix + 
expression + suffix, REG_EXP_OPTIONS);
-                            compiled.add(p);
-                        }
+                                final String expression = 
pattern.getFirstChild().getNodeValue();
+                                LOG.info(" --->pattern: " + expression);
 
-                        final RegExpTokenEvaluator regExpTokenEvaluator = new 
RegExpTokenEvaluator(compiled, queryDep);
-                        EVALUATORS.get(site).put(token, regExpTokenEvaluator);
+                                // (^|\s) or ($|\s) is neccessary to avoid 
matching fragments of words.
+                                final String prefix = 
expression.startsWith("^") ? "" : "(^|\\s)";
+                                final String suffix = expression.endsWith("$") 
? "" : "(\\:|$|\\s)";
+                                // compile pattern
+                                final Pattern p = Pattern.compile(prefix + 
expression + suffix, REG_EXP_OPTIONS);
+                                compiled.add(p);
+                            }
 
+                            final RegExpTokenEvaluator regExpTokenEvaluator = 
new RegExpTokenEvaluator(compiled, queryDep);
+                            EVALUATORS.get(site).put(token, 
regExpTokenEvaluator);
+
+                        }
                     }
-                }
-                LOG.info("Parsing " + REGEXP_EVALUATOR_XMLFILE + " finished");
+                    LOG.info("Parsing " + REGEXP_EVALUATOR_XMLFILE + " 
finished");
+
+            }finally{
+                EVALUATORS_LOCK.writeLock().unlock();
             }
-
-        }finally{
-            EVALUATORS_LOCK.writeLock().unlock();
         }
     }
 

Modified: 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/SolrEvaluatorFactory.java
===================================================================
--- 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/SolrEvaluatorFactory.java
    2008-11-28 11:52:30 UTC (rev 7000)
+++ 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/SolrEvaluatorFactory.java
    2008-11-28 19:51:03 UTC (rev 7001)
@@ -28,6 +28,8 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -214,73 +216,73 @@
                 ));
         }
 
-        try{
-            LIST_NAMES_LOCK.writeLock().lock();
+        if(null == LIST_NAMES.get(site)){
 
-            if(null == LIST_NAMES.get(site)){
+            try{
+                LIST_NAMES_LOCK.writeLock().lock();
 
-                // create map entry for this site
-                LIST_NAMES.put(site, new HashMap<TokenPredicate,String[]>());
+                    // create map entry for this site
+                    LIST_NAMES.put(site, new 
HashMap<TokenPredicate,String[]>());
 
-                // initialise this site's configuration
-                final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-                final DocumentBuilder builder = factory.newDocumentBuilder();
+                    // initialise this site's configuration
+                    final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
 
-                final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
SOLR_EVALUATOR_XMLFILE, builder);
-                loader.abut();
+                    final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
SOLR_EVALUATOR_XMLFILE, builder);
+                    loader.abut();
 
-                LOG.info("Parsing " + SOLR_EVALUATOR_XMLFILE + " started");
-                final Map<TokenPredicate,String[]> listNames = 
LIST_NAMES.get(site);
-                final Document doc = loader.getDocument();
+                    LOG.info("Parsing " + SOLR_EVALUATOR_XMLFILE + " started");
+                    final Map<TokenPredicate,String[]> listNames = 
LIST_NAMES.get(site);
+                    final Document doc = loader.getDocument();
 
-                if(null != doc && null != doc.getDocumentElement()){
+                    if(null != doc && null != doc.getDocumentElement()){
 
-                    final Element root = doc.getDocumentElement();
-                    final NodeList lists = root.getElementsByTagName("list");
-                    for (int i = 0; i < lists.getLength(); ++i) {
+                        final Element root = doc.getDocumentElement();
+                        final NodeList lists = 
root.getElementsByTagName("list");
+                        for (int i = 0; i < lists.getLength(); ++i) {
 
-                        final Element list = (Element) lists.item(i);
+                            final Element list = (Element) lists.item(i);
 
-                        final String tokenName = list.getAttribute("token");
-                        LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
+                            final String tokenName = 
list.getAttribute("token");
+                            LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        TokenPredicate token;
-                        try{
-                            token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
+                            TokenPredicate token;
+                            try{
+                                token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
 
-                        }catch(IllegalArgumentException iae){
-                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
-                            token = 
TokenPredicateUtility.createAnonymousTokenPredicate(tokenName);
-                        }
+                            }catch(IllegalArgumentException iae){
+                                LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                                token = 
TokenPredicateUtility.createAnonymousTokenPredicate(tokenName);
+                            }
 
-                        final String[] listNameArr = 
list.getAttribute("list-name").split(",");
-                        LOG.info(" ->lists: " + 
list.getAttribute("list-name"));
+                            final String[] listNameArr = 
list.getAttribute("list-name").split(",");
+                            LOG.info(" ->lists: " + 
list.getAttribute("list-name"));
 
-                        // update each listname to the format the fast query 
matching servers use
-                        if(null != listNameArr){
-                            for(int j = 0; j < listNameArr.length; ++j){
-                                listNameArr[j] = listNameArr[j];
+                            // update each listname to the format the fast 
query matching servers use
+                            if(null != listNameArr){
+                                for(int j = 0; j < listNameArr.length; ++j){
+                                    listNameArr[j] = listNameArr[j];
+                                }
+
+                                // put the listnames in
+                                Arrays.sort(listNameArr, null);
+                                listNames.put(token, listNameArr);
                             }
 
-                            // put the listnames in
-                            Arrays.sort(listNameArr, null);
-                            listNames.put(token, listNameArr);
+
                         }
-
-
                     }
-                }
-                LOG.info("Parsing " + SOLR_EVALUATOR_XMLFILE + " finished");
+                    LOG.info("Parsing " + SOLR_EVALUATOR_XMLFILE + " 
finished");
+            }finally{
+                LIST_NAMES_LOCK.writeLock().unlock();
             }
-        }finally{
-            LIST_NAMES_LOCK.writeLock().unlock();
         }
     }
 
     private SolrTokenEvaluator getSolrEvaluator() throws EvaluationException {
 
         try {
-            solrEvaluatorCreator.get();
+            solrEvaluatorCreator.get(1000, TimeUnit.MILLISECONDS);
 
         } catch (InterruptedException ex) {
             LOG.error(ex.getMessage(), ex);
@@ -288,6 +290,9 @@
         } catch (ExecutionException ex) {
             LOG.error(ex.getMessage(), ex);
             throw new EvaluationException(ex.getMessage(), ex);
+        } catch (TimeoutException ex) {
+            LOG.error(ex.getMessage(), ex);
+            throw new EvaluationException(ex.getMessage(), ex);
         }
         if( null == solrEvaluator ){
             throw new EvaluationException("NPE", new NullPointerException());

Modified: 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
===================================================================
--- 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
  2008-11-28 11:52:30 UTC (rev 7000)
+++ 
branches/2.18/generic.sesam/query-evaluation/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
  2008-11-28 19:51:03 UTC (rev 7001)
@@ -279,65 +279,65 @@
                 ));
         }
 
-        try{
-            LIST_NAMES_LOCK.writeLock().lock();
+        if(null == LIST_NAMES.get(site)){
+            try{
+                LIST_NAMES_LOCK.writeLock().lock();
 
-            if(null == LIST_NAMES.get(site)){
 
-                // create map entry for this site
-                LIST_NAMES.put(site, new HashMap<TokenPredicate,String[]>());
+                    // create map entry for this site
+                    LIST_NAMES.put(site, new 
HashMap<TokenPredicate,String[]>());
 
-                // initialise this site's configuration
-                final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-                final DocumentBuilder builder = factory.newDocumentBuilder();
-                final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
VERYFAST_EVALUATOR_XMLFILE, builder);
-                loader.abut();
+                    // initialise this site's configuration
+                    final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
+                    final DocumentLoader loader = cxt.newDocumentLoader(cxt, 
VERYFAST_EVALUATOR_XMLFILE, builder);
+                    loader.abut();
 
-                LOG.info("Parsing " + VERYFAST_EVALUATOR_XMLFILE + " started");
-                final Map<TokenPredicate,String[]> listNames = 
LIST_NAMES.get(site);
-                final Document doc = loader.getDocument();
+                    LOG.info("Parsing " + VERYFAST_EVALUATOR_XMLFILE + " 
started");
+                    final Map<TokenPredicate,String[]> listNames = 
LIST_NAMES.get(site);
+                    final Document doc = loader.getDocument();
 
-                if(null != doc && null != doc.getDocumentElement()){
+                    if(null != doc && null != doc.getDocumentElement()){
 
-                    final Element root = doc.getDocumentElement();
-                    final NodeList lists = root.getElementsByTagName("list");
-                    for (int i = 0; i < lists.getLength(); ++i) {
+                        final Element root = doc.getDocumentElement();
+                        final NodeList lists = 
root.getElementsByTagName("list");
+                        for (int i = 0; i < lists.getLength(); ++i) {
 
-                        final Element list = (Element) lists.item(i);
+                            final Element list = (Element) lists.item(i);
 
-                        final String tokenName = list.getAttribute("token");
-                        LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
+                            final String tokenName = 
list.getAttribute("token");
+                            LOG.info(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                        TokenPredicate token;
-                        try{
-                            token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
+                            TokenPredicate token;
+                            try{
+                                token = 
TokenPredicateUtility.getTokenPredicate(tokenName);
 
-                        }catch(IllegalArgumentException iae){
-                            LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
-                            token = 
TokenPredicateUtility.createAnonymousTokenPredicate(tokenName);
-                        }
+                            }catch(IllegalArgumentException iae){
+                                LOG.debug(tokenName + " does not exist. Will 
create it. Underlying exception was " + iae);
+                                token = 
TokenPredicateUtility.createAnonymousTokenPredicate(tokenName);
+                            }
 
-                        final String[] listNameArr = 
list.getAttribute("list-name").split(",");
-                        LOG.info(" ->lists: " + 
list.getAttribute("list-name"));
+                            final String[] listNameArr = 
list.getAttribute("list-name").split(",");
+                            LOG.info(" ->lists: " + 
list.getAttribute("list-name"));
 
-                        // update each listname to the format the fast query 
matching servers use
-                        if(null != listNameArr){
-                            for(int j = 0; j < listNameArr.length; ++j){
-                                listNameArr[j] = LIST_PREFIX + listNameArr[j] 
+ LIST_SUFFIX;
+                            // update each listname to the format the fast 
query matching servers use
+                            if(null != listNameArr){
+                                for(int j = 0; j < listNameArr.length; ++j){
+                                    listNameArr[j] = LIST_PREFIX + 
listNameArr[j] + LIST_SUFFIX;
+                                }
+
+                                // put the listnames in
+                                Arrays.sort(listNameArr, null);
+                                listNames.put(token, listNameArr);
                             }
 
-                            // put the listnames in
-                            Arrays.sort(listNameArr, null);
-                            listNames.put(token, listNameArr);
+
                         }
-
-
                     }
-                }
-                LOG.info("Parsing " + VERYFAST_EVALUATOR_XMLFILE + " 
finished");
+                    LOG.info("Parsing " + VERYFAST_EVALUATOR_XMLFILE + " 
finished");
+            }finally{
+                LIST_NAMES_LOCK.writeLock().unlock();
             }
-        }finally{
-            LIST_NAMES_LOCK.writeLock().unlock();
         }
     }
 

_______________________________________________
Kernel-commits mailing list
Kernel-commits@sesat.no
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to