You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2010/08/26 05:43:55 UTC

svn commit: r989438 - /portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java

Author: rwatler
Date: Thu Aug 26 03:43:55 2010
New Revision: 989438

URL: http://svn.apache.org/viewvc?rev=989438&view=rev
Log:
Correct clustered page notification eviction of properties cache concurrent modification exception and logic typo to cover properties cache purge special case

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java?rev=989438&r1=989437&r2=989438&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java Thu Aug 26 03:43:55 2010
@@ -223,8 +223,9 @@ public class DatabasePageManagerCache im
                             Set index = (Set)propertiesCacheIndexMap.get(path);
                             if (index != null)
                             {
-                                // remove all indexed fragment keys
-                                Iterator fragmentKeyIter = index.iterator();
+                                // remove all indexed fragment keys, (copy first since "quiet" removes
+                                // from fragment property caches will side effect this set while iterating)
+                                Iterator fragmentKeyIter = (new ArrayList(index)).iterator();
                                 while (fragmentKeyIter.hasNext())
                                 {
                                     String fragmentKey = (String)fragmentKeyIter.next();
@@ -235,7 +236,7 @@ public class DatabasePageManagerCache im
                                     {
                                         clearPrincipalPropertiesCache(fragmentId);
                                     }
-                                    // remove fragment property cache
+                                    // ensure removed from fragment property cache
                                     DatabasePageManagerCache.propertiesCache.removeQuiet(fragmentKey);
                                     DatabasePageManagerCache.propertiesPathCache.removeQuiet(fragmentKey);
                                 }
@@ -341,7 +342,7 @@ public class DatabasePageManagerCache im
                         }
                     }                    
                 }
-                else if (fragmentKeyOrPath != null)
+                else if (fragmentKeyOrPath == null)
                 {
                     // remove all cache keys from properties cache index
                     synchronized (DatabasePageManagerCache.class)



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org