You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2013/10/16 02:06:55 UTC

svn commit: r1532606 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java

Author: lu4242
Date: Wed Oct 16 00:06:54 2013
New Revision: 1532606

URL: http://svn.apache.org/r1532606
Log:
MYFACES-3792 ConcurrentModificationException in org.apache.myfaces.config.ManagedBeanDestroyer - when using TomcatAnnotationLifecycleProvider

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java?rev=1532606&r1=1532605&r2=1532606&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/ManagedBeanDestroyer.java Wed Oct 16 00:06:54 2013
@@ -20,6 +20,7 @@ package org.apache.myfaces.config;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.Map;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -97,10 +98,16 @@ public class ManagedBeanDestroyer implem
             return;
         }
         
-        for (String key : scope.keySet())
+        if (!scope.isEmpty())
         {
-            Object value = scope.get(key);
-            this.destroy(key, value);
+            Set<String> keySet = scope.keySet();
+            String[] keys = keySet.toArray(new String[keySet.size()]);
+            
+            for (String key : keys)
+            {
+                Object value = scope.get(key);
+                this.destroy(key, value);
+            }
         }
     }