[jboss-jira] [JBoss JIRA] Assigned: (JBMICROCONT-101) Need better error reporting of circular dependencies

Adrian Brock (JIRA) jira-events at jboss.com
Thu Aug 10 16:49:13 EDT 2006


     [ http://jira.jboss.com/jira/browse/JBMICROCONT-101?page=all ]

Adrian Brock reassigned JBMICROCONT-101:
----------------------------------------

    Assignee: Adrian Brock

> 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

        



More information about the jboss-jira mailing list