Author: knopp
Date: Tue Apr 24 17:29:03 2007
New Revision: 532156

URL: http://svn.apache.org/viewvc?view=rev&rev=532156
Log:
usedPageMaps locking

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?view=diff&rev=532156&r1=532155&r2=532156
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
 Tue Apr 24 17:29:03 2007
@@ -850,10 +850,13 @@
        {
                // Check that session doesn't have too many page maps already
                final int maxPageMaps = 
getApplication().getSessionSettings().getMaxPageMaps();
-               if (usedPageMaps.size() >= maxPageMaps)
+               synchronized(usedPageMaps) 
                {
-                       IPageMap pm = (IPageMap)usedPageMaps.getFirst();
-                       pm.remove();
+                       if (usedPageMaps.size() >= maxPageMaps)
+                       {
+                               IPageMap pm = (IPageMap)usedPageMaps.getFirst();
+                               pm.remove();
+                       }
                }
 
                // Create new page map
@@ -892,7 +895,12 @@
                PageMapAccessMetaData pagemapMetaData = 
(PageMapAccessMetaData)getMetaData(PAGEMAP_ACCESS_MDK);
                if (pagemapMetaData != null)
                        pagemapMetaData.pageMapNames.remove(pageMap.getName());
-               usedPageMaps.remove(pageMap);
+               
+               synchronized (usedPageMaps)
+               {       
+                       usedPageMaps.remove(pageMap);
+               }
+                               
                removeAttribute(attributeForPageMapName(pageMap.getName()));
                dirty();
        }
@@ -1258,8 +1266,11 @@
        {
                if (!map.isDefault())
                {
-                       usedPageMaps.remove(map);
-                       usedPageMaps.addLast(map);
+                       synchronized (usedPageMaps)
+                       {
+                               usedPageMaps.remove(map);
+                               usedPageMaps.addLast(map);                      
        
+                       }
                }
                List dirtyObjects = getDirtyObjectsList();
                if (!dirtyObjects.contains(map))


Reply via email to