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 ta...@apache.org on 2006/12/08 19:25:46 UTC
svn commit: r484690 - in
/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed:
page/document/proxy/NodeProxy.java
portalsite/impl/PortalSiteRequestContextImpl.java
Author: taylor
Date: Fri Dec 8 10:25:44 2006
New Revision: 484690
URL: http://svn.apache.org/viewvc?view=rev&rev=484690
Log:
http://issues.apache.org/jira/browse/JS2-619
Non-thread safe code in PortalSiteRequestContextImpl.java
contribution from Woonsan Ko
Modified:
portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java
Modified: portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java?view=diff&rev=484690&r1=484689&r2=484690
==============================================================================
--- portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java (original)
+++ portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java Fri Dec 8 10:25:44 2006
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Collections;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.folder.MenuDefinition;
@@ -177,7 +178,7 @@
List locators = getMenuDefinitionLocators();
if (locators != null)
{
- menuDefinitions = new ArrayList(locators.size());
+ menuDefinitions = Collections.synchronizedList(new ArrayList(locators.size()));
Iterator locatorsIter = locators.iterator();
while (locatorsIter.hasNext())
{
@@ -260,7 +261,7 @@
{
if (menuDefinitionLocators == null)
{
- menuDefinitionLocators = new ArrayList(definitions.size() * 2);
+ menuDefinitionLocators = Collections.synchronizedList(new ArrayList(definitions.size() * 2));
}
menuDefinitionLocators.add(new SiteViewMenuDefinitionLocator(definition, node));
}
@@ -295,7 +296,7 @@
{
if (menuDefinitionLocators == null)
{
- menuDefinitionLocators = new ArrayList(locators.size() * 2);
+ menuDefinitionLocators = Collections.synchronizedList(new ArrayList(locators.size() * 2));
}
menuDefinitionLocators.add(locator);
}
@@ -326,13 +327,15 @@
// find matching menu definition locator by name
if ((menuDefinitionLocators != null) && (name != null))
{
- Iterator locatorsIter = menuDefinitionLocators.iterator();
- while (locatorsIter.hasNext())
- {
- SiteViewMenuDefinitionLocator locator = (SiteViewMenuDefinitionLocator)locatorsIter.next();
- if (name.equals(locator.getName()))
+ synchronized (menuDefinitionLocators) {
+ Iterator locatorsIter = menuDefinitionLocators.iterator();
+ while (locatorsIter.hasNext())
{
- return locator;
+ SiteViewMenuDefinitionLocator locator = (SiteViewMenuDefinitionLocator)locatorsIter.next();
+ if (name.equals(locator.getName()))
+ {
+ return locator;
+ }
}
}
}
Modified: portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java?view=diff&rev=484690&r1=484689&r2=484690
==============================================================================
--- portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java Fri Dec 8 10:25:44 2006
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.Collections;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.folder.MenuDefinition;
@@ -413,7 +414,7 @@
if (locators != null)
{
// get custom definition names
- pageMenuDefinitionNames = new HashSet(locators.size());
+ pageMenuDefinitionNames = Collections.synchronizedSet(new HashSet(locators.size()));
Iterator locatorsIter = locators.iterator();
while (locatorsIter.hasNext())
{
@@ -427,7 +428,7 @@
}
else
{
- pageMenuDefinitionNames = new HashSet(0);
+ pageMenuDefinitionNames = Collections.synchronizedSet(new HashSet(0));
}
}
return pageMenuDefinitionNames;
@@ -508,7 +509,7 @@
// cache relative menu for request
if (menuDefinitionLocatorCache == null)
{
- menuDefinitionLocatorCache = new HashMap(8);
+ menuDefinitionLocatorCache = Collections.synchronizedMap(new HashMap(8));
}
menuDefinitionLocatorCache.put(locator, menu);
}
@@ -517,7 +518,7 @@
// cache absolute menu for session
if (sessionContext.getMenuDefinitionLocatorCache() == null)
{
- sessionContext.setMenuDefinitionLocatorCache(new HashMap(8));
+ sessionContext.setMenuDefinitionLocatorCache(Collections.synchronizedMap(new HashMap(8)));
}
sessionContext.getMenuDefinitionLocatorCache().put(locator, menu);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org