[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