You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by at...@apache.org on 2009/03/18 12:36:22 UTC
svn commit: r755561 -
/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java
Author: ate
Date: Wed Mar 18 11:36:22 2009
New Revision: 755561
URL: http://svn.apache.org/viewvc?rev=755561&view=rev
Log:
Deal with potential concurrent access to request.attributes when running in parallel/multithreaded mode
Modified:
portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java
Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java?rev=755561&r1=755560&r2=755561&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletRequestWrapper.java Wed Mar 18 11:36:22 2009
@@ -31,6 +31,7 @@
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
+import java.util.NoSuchElementException;
import javax.portlet.ClientDataRequest;
import javax.portlet.PortletRequest;
@@ -529,11 +530,25 @@
Enumeration<String> e;
for (e = getRequest().getAttributeNames(); e.hasMoreElements(); )
{
- names.add(e.nextElement());
+ try
+ {
+ names.add(e.nextElement());
+ }
+ catch(NoSuchElementException nse)
+ {
+ // ignore potential concurrent changes when run in parallel mode
+ }
}
for (e = portletRequest.getAttributeNames(); e.hasMoreElements(); )
{
- names.add(e.nextElement());
+ try
+ {
+ names.add(e.nextElement());
+ }
+ catch(NoSuchElementException nse)
+ {
+ // ignore potential concurrent changes when run in parallel mode
+ }
}
return Collections.enumeration(names);
}