You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2008/03/05 12:17:09 UTC

svn commit: r633818 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java

Author: pauls
Date: Wed Mar  5 03:16:58 2008
New Revision: 633818

URL: http://svn.apache.org/viewvc?rev=633818&view=rev
Log:
Turns out our LDAP filter is not reentrant - but it is easy to fix - so this patch should make it work. It is needed because filter evaluations can call out to keys being compared which might in turn use the given thread to evaluate their own filter.

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java?rev=633818&r1=633817&r2=633818&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/FilterImpl.java Wed Mar  5 03:16:58 2008
@@ -133,6 +133,7 @@
         {
             evaluator = (Evaluator) tuple[0];
             mapper = (SimpleMapper) tuple[1];
+            m_cache.set(null);
         }
 
         try 
@@ -170,6 +171,10 @@
             if (tuple == null) 
             {
                 m_cache.set(new SoftReference(new Object[] {evaluator, mapper}));
+            }
+            else
+            {
+                m_cache.set(tupleRef);
             }
         }