[jboss-jira] [JBoss JIRA] Updated: (JBMICROCONT-176) Injection of KernelController fails in bootstrap xml

Ales Justin (JIRA) jira-events at lists.jboss.org
Sat Jul 21 02:06:10 EDT 2007


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

Ales Justin updated JBMICROCONT-176:
------------------------------------

    Fix Version/s: JBossMC-2.0.0.Beta4

> Injection of KernelController fails in bootstrap xml
> ----------------------------------------------------
>
>                 Key: JBMICROCONT-176
>                 URL: http://jira.jboss.com/jira/browse/JBMICROCONT-176
>             Project: JBoss MicroContainer
>          Issue Type: Bug
>    Affects Versions:  JBossMC_2_0_0 Beta3
>            Reporter: Scott M Stark
>         Assigned To: Ales Justin
>             Fix For: JBossMC-2.0.0.Beta4
>
>
> If I attempt to the KernelController into the HDScanner defined in the conf/bootstrap-beans.xml using:
>    <!-- Hotdeployment of applications -->
>    <bean name="HDScanner"
>       class="org.jboss.system.server.profileservice.hotdeploy.HDScanner">
>       <property name="mainDeployer"><inject bean="MainDeployer"/></property>
>       <property name="controller"><inject bean="jboss.kernel:service=Kernel" property="controller"/></property>
>       <property name="profileService"><inject bean="ProfileService"/></property>
>       <property name="scanPeriod">5000</property>
>       <property name="scanThreadName">HDScanner</property>
>    </bean>
> this fails with:
> 10:10:51,406 ERROR [AbstractKernelController] Error installing to Configured: name=HDScanner state=Instantiated
> java.lang.IllegalArgumentException: Wrong arguments. setController for target org.jboss.system.server.profileservice.hotdeploy.HDScanner at 568bf3ec expected=[org.jboss.kernel.spi.dependency.KernelController] actual=[org.jboss.kernel.Kernel]
>         at org.jboss.reflect.plugins.introspection.ReflectionUtils.handleErrors(ReflectionUtils.java:224)
>         at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
>         at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:108)
>         at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:103)
>         at org.jboss.kernel.plugins.dependency.ConfigureAction.setAttributes(ConfigureAction.java:137)
>         at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:60)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:197)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:136)
>         at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
>         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:233)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:724)
>         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:445)
>         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:555)
>         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:489)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:289)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:192)
>         at org.jboss.system.ServiceController.doInstall(ServiceController.java:638)
>         at org.jboss.system.ServiceController.register(ServiceController.java:344)
>         at org.jboss.system.ServiceController.start(ServiceController.java:415)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
>         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
>         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
>         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
>         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)        at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:194)
>         at org.jboss.aop.deployment.AspectManagerService.postRegister(AspectManagerService.java:634)
>         at org.jboss.mx.server.AbstractMBeanInvoker.invokePostRegister(AbstractMBeanInvoker.java:974)
>         at org.jboss.mx.server.AbstractMBeanInvoker.postRegister(AbstractMBeanInvoker.java:681)
>         at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:336)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
>         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
>         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:138)
>         at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
>         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:140)
>         at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
>         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
>         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)        at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1431)        at java.security.AccessController.doPrivileged(Native Method)
>         at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1426)
>         at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:376)
>         at org.jboss.aop.deployers.AspectManagerJMXRegistrar.start(AspectManagerJMXRegistrar.java:57)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
>         at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:108)
>         at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:103)
>         at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:145)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:197)
>         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:136)
>         at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
>         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:233)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:724)
>         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:445)
>         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:555)
>         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:489)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:289)
>         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:192)
>         at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:84)
>         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:232)
>         at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
>         at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:403)
>         at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:342)
>         at org.jboss.Main.boot(Main.java:210)
>         at org.jboss.Main$1.run(Main.java:522)
>         at java.lang.Thread.run(Thread.java:595)
> Going through the code, the failure occurs because the AbstractDependencyValueMetaData.getValue requires a property != null && lookup instanceof AttributeDispatchContext. The lookup in this case is a KernelRegistryEntry, so the property value is not retrieved and instead the bean is used as the value.
>    public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
>    {
>       ControllerState state = dependentState;
>       if (state == null)
>          state = ControllerState.INSTALLED;
>       Controller controller = context.getController();
>       ControllerContext lookup = controller.getContext(value, state);
>       if (lookup == null)
>          throw new Error("Should not be here - dependency failed! " + this);
>       Object result = lookup.getTarget();
>       if (property != null && lookup instanceof AttributeDispatchContext)
>       {
>          AttributeDispatchContext adc = (AttributeDispatchContext) lookup;
>          result = adc.get(property);
>       }
>       return info != null ? info.convertValue(result) : result;
>    }

-- 
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