Index: web/weld-integration/src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- web/weld-integration/src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java (revision 48471) +++ web/weld-integration/src/main/java/org/glassfish/weld/BeanDeploymentArchiveImpl.java (revision ) @@ -193,20 +193,8 @@ } public Collection getBeanClasses() { - List s = new ArrayList(); - for (Iterator> iterator = beanClasses.iterator(); iterator.hasNext();) { - String classname = iterator.next().getName(); - s.add(classname); + return getBeanClasses(true); - } + } - //This method is called during BeanDeployment.deployBeans, so this would - //be the right time to place the module classloader for the BDA as the TCL - logger.log(FINER, "set TCL for " + this.id + " to " + this.moduleClassLoaderForBDA); - Thread.currentThread().setContextClassLoader(this.moduleClassLoaderForBDA); - //The TCL is unset at the end of deployment of CDI beans in WeldDeployer.event - //XXX: This is a workaround for issue https://issues.jboss.org/browse/WELD-781. - //Remove this as soon as the SPI comes in. - return s; - } public Collection> getBeanClassObjects(){ return beanClasses; @@ -289,10 +277,11 @@ //A graphical representation of the BDA hierarchy public String toString() { - String beanClassesString = ((getBeanClasses().size() > 0) ? getBeanClasses().toString() : ""); + Collection classes = getBeanClasses(false); + String beanClassesString = ((classes.size() > 0) ? classes.toString() : ""); - String val = "|ID: " + getId() + ", bdaType= " + bdaType + String val = "|ID: " + getId() + ", bdaType= " + bdaType + ", accessibleBDAs #:" + getBeanDeploymentArchives().size() + ", " + formatAccessibleBDAs(this) - + ", Bean Classes #: " + getBeanClasses().size() + "," + beanClassesString + ", ejbs=" + getEjbs() +"\n"; + + ", Bean Classes #: " + classes.size() + "," + beanClassesString + ", ejbs=" + getEjbs() +"\n"; Collection bdas = getBeanDeploymentArchives(); Iterator iter = bdas.iterator(); @@ -301,11 +290,14 @@ BDAType embedBDAType = BDAType.UNKNOWN; if (bda instanceof BeanDeploymentArchiveImpl) { embedBDAType = ((BeanDeploymentArchiveImpl)bda).getBDAType(); + classes = ((BeanDeploymentArchiveImpl) bda).getBeanClasses(false); + } else { + classes = bda.getBeanClasses(); } - String embedBDABeanClasses = ((bda.getBeanClasses().size() > 0) ? bda.getBeanClasses().toString() : ""); + String embedBDABeanClasses = ((classes.size() > 0) ? classes.toString() : ""); val += "|---->ID: " + bda.getId() + ", bdaType= " + embedBDAType.toString() + ", accessibleBDAs #:" + bda.getBeanDeploymentArchives().size() + ", " + formatAccessibleBDAs(bda) - + ", Bean Classes #: " + bda.getBeanClasses().size() + "," + embedBDABeanClasses + ", ejbs=" + bda.getEjbs() + "\n"; + + ", Bean Classes #: " + classes.size() + "," + embedBDABeanClasses + ", ejbs=" + bda.getEjbs() + "\n"; } return val; } @@ -549,6 +541,24 @@ //cache the moduleClassLoader for this BDA this.moduleClassLoaderForBDA = cl; return cl; + } + + private Collection getBeanClasses(boolean setTccl) { + List s = new ArrayList(); + for (Iterator> iterator = beanClasses.iterator(); iterator.hasNext();) { + String classname = iterator.next().getName(); + s.add(classname); + } + if (setTccl) { + //This method is called during BeanDeployment.deployBeans, so this would + //be the right time to place the module classloader for the BDA as the TCL + logger.log(FINER, "set TCL for " + this.id + " to " + this.moduleClassLoaderForBDA); + Thread.currentThread().setContextClassLoader(this.moduleClassLoaderForBDA); + //The TCL is unset at the end of deployment of CDI beans in WeldDeployer.event + //XXX: This is a workaround for issue https://issues.jboss.org/browse/WELD-781. + //Remove this as soon as the SPI comes in. + } + return s; } public InjectionTarget getInjectionTarget(AnnotatedType annotatedType) {