[
http://jira.jboss.com/jira/browse/JBMICROCONT-101?page=all ]
Adrian Brock closed JBMICROCONT-101.
------------------------------------
Resolution: Done
I've added a temporary fix to avoid the "NPE" for now.
Need better error reporting of circular dependencies
----------------------------------------------------
Key: JBMICROCONT-101
URL:
http://jira.jboss.com/jira/browse/JBMICROCONT-101
Project: JBoss MicroContainer
Issue Type: Feature Request
Components: Dependency
Affects Versions: JBossMC_2_0_0M1
Reporter: Scott M Stark
Assigned To: Adrian Brock
Fix For: JBossMC_2_0_0M1
I switched around some dependencies and ended up producing a circular dependency:
<?xml version="1.0" encoding="UTF-8"?>
<!-- A ProfileServiceBootstrap bootstrap descriptor that uses the simple
VFSDeploymentScanner that goes directly to the MainDeployer rather than the
ProfileService.
$Id$
-->
<deployment
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
<!-- -->
<bean name="ProfileService"
class="org.jboss.system.server.profileservice.ProfileServiceImpl">
<constructor>
<parameter>${jboss.server.name}</parameter>
</constructor>
<property
name="profileRoot">${jboss.server.home.url}/profile</property>
</bean>
<!-- The MainDeployer -->
<bean name="MainDeployer"
class="org.jboss.deployers.plugins.MainDeployerImpl">
<property name="VFSFactory"><inject
bean="VFSFactory"/></property>
<property name="deployers">
<array class="[Lorg.jboss.deployers.spi.AspectDeployer;"
elementClass="org.jboss.deployers.spi.AspectDeployer">
<inject bean="ClassLoadingDeployer"/>
<inject bean="BeanDeployer"/>
<inject bean="SARDeployer"/>
</array>
</property>
<supply>Deployers</supply>
</bean>
<!-- The factory for VFS instances -->
<bean name="VFSFactory"
class="org.jboss.vfs.file.DefaultVFSFactory">
</bean>
<!-- Deployers. Declaration order defines the deployer chain order
-->
<bean name="ClassLoadingDeployer"
class="org.jboss.deployers.plugins.classloading.ClassLoadingDeployer">
</bean>
<bean name="BeanDeployer"
class="org.jboss.deployers.plugins.bean.BeanDeployer">
</bean>
<!-- Load the jboss jmx classes -->
<bean name="JMXClassLoader"
class="org.jboss.vfs.classloading.VFSClassLoader">
<constructor
factoryClass="org.jboss.vfs.classloading.VFSClassLoaderFactory"
factoryMethod="newClassLoader">
<parameter
class="java.net.URL">${jboss.lib.url}</parameter>
<parameter>
<array class="[Ljava.lang.String;"
elementClass="java.lang.String">
<value>dom4j.jar</value>
<value>jboss-j2se.jar</value>
<value>jboss-jmx.jar</value>
<value>jboss-mbeans.jar</value>
<value>jboss-system-jmx.jar</value>
</array>
</parameter>
<parameter><inject bean="MainDeployer"
property="VFSFactory"/></parameter>
</constructor>
</bean>
<bean name="SARDeployer"
class="org.jboss.deployment.SARDeployer">
<classloader><inject
bean="JMXClassLoader"/></classloader>
<property name="useNamespaceAwareParser">true</property>
<property name="server"><inject bean="JMXKernel"
property="mbeanServer" /></property>
<property name="serviceController"><inject
bean="JMXKernel" property="serviceController" /></property>
</bean>
<!-- A bean that setups a jboss-4.0.x type of jmx kernel to support the
the legacy mbean deployments handled by the SARDeployer
-->
<bean name="JMXKernel"
class="org.jboss.system.server.jmx.JMXKernel">
<classloader><inject
bean="JMXClassLoader"/></classloader>
<property name="serverImpl"><inject
bean="org.jboss.system.server.Server"/></property>
</bean>
<!-- Hot deployment service that directly uses the MainDeployer -->
<bean name="VFSDeploymentScanner"
class="org.jboss.deployers.plugins.scanner.VFSDeploymentScannerImpl">
<property name="mainDeployer"><inject
bean="MainDeployer"/></property>
<property name="VFSFactory"><inject
bean="MainDeployer" property="VFSFactory" /></property>
<property name="URIList">
<list
elementClass="java.net.URI"><value>${jboss.server.home.url}/deploy/</value></list>
</property>
<property
name="scanPeriod"><value>500000</value></property>
<demand state="Instantiated">Deployers</demand>
</bean>
</deployment>
All that was reported was a NPE due to the target of the demand=Deployers not being
Instantiated:
12:37:31,477 DEBUG [ServerImpl] Failed to start
java.lang.IllegalArgumentException: Null name
at
org.jboss.dependency.plugins.AbstractController.getContext(AbstractController.java:101)
at
org.jboss.kernel.plugins.dependency.AbstractKernelController.getContext(AbstractKernelController.java:94)
at
org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:229)
at
org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:161)
at
org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:202)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:371)
at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:323)
at org.jboss.Main.boot(Main.java:210)
at org.jboss.Main$1.run(Main.java:488)
at java.lang.Thread.run()V(Unknown Source)
What should be reported is the bean which supplies the demand and its state not matching
and why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira