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