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