Author: ssmiweve
Date: 2008-01-25 13:20:50 +0100 (Fri, 25 Jan 2008)
New Revision: 6037
Modified:
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
branches/2.16/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/config/SearchModeTest.java
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
Log:
SEARCH-4072 - RunningQueryImpl.performResultHandlers
ConcurrentModificationException
Modified:
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
---
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
2008-01-24 21:11:07 UTC (rev 6036)
+++
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
2008-01-25 12:20:50 UTC (rev 6037)
@@ -206,7 +206,7 @@
/**
* Thread run. Guts of the logic behind this class.
- * XXX Insanely long method. Divide & Conquer.
+ * XXX long method. Divide & Conquer.
*
* @throws InterruptedException
*/
@@ -610,7 +610,9 @@
},
context);
- final List<RunHandlerConfig> rhcList =
context.getSearchMode().getRunHandlers();
+ final List<RunHandlerConfig> rhcList
+ = new
ArrayList<RunHandlerConfig>(context.getSearchMode().getRunHandlers());
+
/* Adding NavigationRunHandler to all search modes */
rhcList.add(new NavigationRunHandlerConfig());
Modified:
branches/2.16/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/config/SearchModeTest.java
===================================================================
---
branches/2.16/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/config/SearchModeTest.java
2008-01-24 21:11:07 UTC (rev 6036)
+++
branches/2.16/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/config/SearchModeTest.java
2008-01-25 12:20:50 UTC (rev 6037)
@@ -17,6 +17,8 @@
*/
package no.sesat.search.mode.config;
+import java.util.ArrayList;
+import java.util.Collection;
import javax.xml.parsers.DocumentBuilder;
import no.schibstedsok.commons.ioc.ContextWrapper;
import no.sesat.search.mode.SearchMode;
@@ -68,7 +70,9 @@
webCrawl.setSpellchecklanguage("no");
webCrawl.setResultsToReturn(10);
- mode.addSearchConfiguration(webCrawl);
+ final Collection<SearchConfiguration> searchConfigurations = new
ArrayList<SearchConfiguration>();
+ searchConfigurations.add(webCrawl);
+ mode.setSearchConfigurations(searchConfigurations);
final DataModel datamodel = getDataModel();
@@ -146,8 +150,11 @@
searchConfiguration.setPartnerId("overturePartnerId");
searchConfiguration.setUrl("/d/search/p/standard/eu/xml/rlb/?mkt=se&adultFilter=clean&accountFilters=schibstedsok_se");
searchConfiguration.setEncoding("UTF-8");
- mode.addSearchConfiguration(searchConfiguration);
+ final Collection<SearchConfiguration> searchConfigurations = new
ArrayList<SearchConfiguration>();
+ searchConfigurations.add(searchConfiguration);
+ mode.setSearchConfigurations(searchConfigurations);
+
final DataModel datamodel = getDataModel();
final RunningQuery.Context rqCxt = new RunningQuery.Context(){
Modified:
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
===================================================================
---
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
2008-01-24 21:11:07 UTC (rev 6036)
+++
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
2008-01-25 12:20:50 UTC (rev 6037)
@@ -29,6 +29,7 @@
import java.util.Collection;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import no.sesat.search.mode.config.SearchConfiguration;
import no.sesat.search.run.handler.RunHandlerConfig;
@@ -76,7 +77,7 @@
private SearchCommandExecutorConfig searchCommandExecutor =
SearchCommandExecutorConfig.SEQUENTIAL;
- private Collection<SearchConfiguration> searchConfigurations = new
ArrayList<SearchConfiguration>();
+ private Collection<SearchConfiguration> searchConfigurations;
private SearchMode parentSearchMode;
private boolean queryAnalysisEnabled = false;
private String parentMode;
@@ -136,20 +137,11 @@
* @param searchConfigurations
*/
public void setSearchConfigurations(Collection<SearchConfiguration>
searchConfigurations) {
- this.searchConfigurations = searchConfigurations;
+ this.searchConfigurations =
Collections.unmodifiableCollection(searchConfigurations);
}
/**
*
- * @param conf
- */
- public void addSearchConfiguration(SearchConfiguration conf) {
- searchConfigurations.add(conf);
- }
-
-
- /**
- *
* @return
*/
public SearchCommandExecutorConfig getExecutor() {
@@ -232,7 +224,7 @@
* @param runHandlers New list of run handlers
*/
public void setRunHandlers(final List<RunHandlerConfig> runHandlers) {
- this.runHandlers = runHandlers;
+ this.runHandlers = Collections.unmodifiableList(runHandlers);
}
/**
@@ -248,7 +240,7 @@
* @param runTransformers New List of run transformers
*/
public void setRunTransformers(final List<RunTransformerConfig>
runTransformers) {
- this.runTransformers = runTransformers;
+ this.runTransformers = Collections.unmodifiableList(runTransformers);
}
/**
@@ -258,6 +250,7 @@
public List<RunTransformerConfig> getRunTransformers() {
return runTransformers;
}
+
// Inner classes -------------------------------------------------
}
Modified:
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
===================================================================
---
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
2008-01-24 21:11:07 UTC (rev 6036)
+++
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
2008-01-25 12:20:50 UTC (rev 6037)
@@ -43,6 +43,7 @@
import javax.xml.parsers.ParserConfigurationException;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -266,6 +267,7 @@
final NodeList childNodes = modeE.getChildNodes();
+ final Collection<SearchConfiguration> searchConfigurations =
new ArrayList<SearchConfiguration>();
for (int j = 0; j < childNodes.getLength(); ++j) {
final Node childNode = childNodes.item(j);
@@ -273,7 +275,7 @@
continue;
}
final Element childElement = (Element) childNode;
-
+
if(SEARCH_CONFIGURATION_FACTORY.supported(childElement.getTagName(), context)){
// commands
@@ -281,7 +283,7 @@
=
SEARCH_CONFIGURATION_FACTORY.parseSearchConfiguration(context, childElement,
mode);
modesCommands.put(sc.getName(), sc);
- mode.addSearchConfiguration(sc);
+ searchConfigurations.add(sc);
// }else if("navigation".equals(childElement.getTagName())){
// // navigation
@@ -292,6 +294,7 @@
// mode.setNavigationConfiguration(parseNavigation(id,
navigationElements));
}
}
+ mode.setSearchConfigurations(searchConfigurations);
// add mode
try {
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits