You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/04/25 02:29:04 UTC

svn commit: r532156 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java

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))