Author: rmannibucau
Date: Sun May 13 20:25:02 2012
New Revision: 1337980
URL: http://svn.apache.org/viewvc?rev=1337980&view=rev
Log:
TOMEE-189 avoiding java.util.ConcurrentModificationException (previous commit)
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1337980&r1=1337979&r2=1337980&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Sun May 13 20:25:02 2012
@@ -737,22 +737,27 @@ public class TomcatWebAppBuilder impleme
private static void updateInjections(Collection<Injection> injections,
ClassLoader classLoader, boolean keepInjection) {
final Iterator<Injection> it = injections.iterator();
- while (it.hasNext()) { // update not loaded injections for classloader
issues or remove them
+ final List<Injection> newOnes = new ArrayList<Injection>();
+ while (it.hasNext()) {
final Injection injection = it.next();
if (injection.getTarget() == null) {
try {
final Class<?> target =
classLoader.loadClass(injection.getClassname());
if (keepInjection) {
final Injection added = new
Injection(injection.getJndiName(), injection.getName(), target);
- injections.add(added);
+ newOnes.add(added);
} else {
injection.setTarget(target);
}
} catch (ClassNotFoundException cnfe) {
- it.remove();
+ // ignored
}
}
}
+
+ if (!newOnes.isEmpty()) {
+ injections.addAll(newOnes);
+ }
}
private static void undeploy(final StandardContext standardContext, final
ContextInfo contextInfo) {