[hibernate-commits] Hibernate SVN: r14879 - search/trunk/src/java/org/hibernate/search/query.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Sat Jul 5 15:25:36 EDT 2008


Author: epbernard
Date: 2008-07-05 15:25:36 -0400 (Sat, 05 Jul 2008)
New Revision: 14879

Modified:
   search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java
Log:
Clarify the thread safety of Filter and filter factories

Modified: search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java	2008-07-05 17:01:12 UTC (rev 14878)
+++ search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java	2008-07-05 19:25:36 UTC (rev 14879)
@@ -291,6 +291,10 @@
 	private void buildFilters() {
 		SearchFactoryImplementor searchFactoryImplementor = getSearchFactoryImplementor();
 		if ( filterDefinitions != null && filterDefinitions.size() > 0 ) {
+			/*
+			 * FilterKey implementations and Filter(Factory) do not have to be threadsafe wrt their parameter injection
+			 * as FilterCachingStrategy ensure a memory barrier between concurrent thread calls
+			 */
 			ChainedFilter chainedFilter = new ChainedFilter();
 			for (FullTextFilterImpl filterDefinition : filterDefinitions.values()) {
 				FilterDef def = searchFactoryImplementor.getFilterDefinition( filterDefinition.getName() );
@@ -311,6 +315,7 @@
 				if ( def.isCache() && def.getKeyMethod() == null && filterDefinition.getParameters().size() > 0 ) {
 					throw new SearchException( "Filter with parameters and no @Key method: " + filterDefinition.getName() );
 				}
+
 				FilterKey key = null;
 				if ( def.isCache() ) {
 					if ( def.getKeyMethod() == null ) {




More information about the hibernate-commits mailing list