Index: src/main/java/org/glassfish/weld/DeploymentImpl.java =================================================================== --- src/main/java/org/glassfish/weld/DeploymentImpl.java (revision 44859) +++ src/main/java/org/glassfish/weld/DeploymentImpl.java (working copy) @@ -58,6 +58,7 @@ import java.util.ListIterator; import java.util.Map; import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Logger; import javax.enterprise.inject.spi.Extension; @@ -327,7 +328,7 @@ + beanClass + " not found in the BDAs of this deployment. " + "Hence creating a new BDA"); List> beanClasses = new ArrayList>(); - List beanXMLUrls = new ArrayList(); + Set beanXMLUrls = new CopyOnWriteArraySet(); Set ejbs = new HashSet(); beanClasses.add(beanClass); BeanDeploymentArchive newBda = Index: src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java =================================================================== --- src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java (revision 44859) +++ src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java (working copy) @@ -67,6 +67,8 @@ import java.util.List; import java.util.ListIterator; import java.util.Map; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Logger; import javax.enterprise.inject.spi.AnnotatedType; @@ -95,7 +97,7 @@ private String id; private List> moduleClasses = null; //Classes in the module private List> beanClasses = null; //Classes identified as Beans through Weld SPI - private List wUrls = null; + private Set wUrls = null; private final Collection> ejbDescImpls; private List beanDeploymentArchives; @@ -127,7 +129,7 @@ Collection ejbs, DeploymentContext ctx, String bdaID) { this.beanClasses = new ArrayList>(); this.moduleClasses = new ArrayList>(); - this.wUrls = new ArrayList(); + this.wUrls = new CopyOnWriteArraySet(); this.archive = archive; if (bdaID == null) { this.id = archive.getName(); @@ -166,7 +168,7 @@ //These are for empty BDAs that do not model Bean classes in the current //deployment unit -- for example: BDAs for portable Extensions. - public BeanDeploymentArchiveImpl(String id, List> wClasses, List wUrls, + public BeanDeploymentArchiveImpl(String id, List> wClasses, Set wUrls, Collection ejbs, DeploymentContext ctx) { this.id = id; this.moduleClasses = wClasses;