Problem deploying bean with a property annotation
starksm64 Sep 23, 2007 1:50 PMIf I deploy a bean like:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <bean name="AnnotatedBean" class="org.jboss.test.deployers.vfs.deployer.bean.support.AnnotatedBean"> <annotation>@org.jboss.managed.api.annotation.ManagementComponent(type="MCBean",subtype="AnnotationTest")</annotation> <!-- Test --> <property name="propWithXmlOverride"> <annotation>@org.jboss.managed.api.annotation.ManagementProperty(name="prop3", mappedName="propWithXmlOverride", description="ManagedProperty defined via xml annotation")</annotation> </property> </bean>
I see:
17610 ERROR [AbstractKernelController] Error installing to Configured: name=AnnotatedBean state=Instantiated
java.lang.IllegalArgumentException: Null value metadata
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoint(Configurator.java:497)
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoint(Configurator.java:444)
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoints(Configurator.java:408)
at org.jboss.kernel.plugins.config.AbstractKernelConfigurator.getPropertySetterJoinPoints(AbstractKernelConfigurator.java:120)
at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:59)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:137)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:1)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:574)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:398)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:68)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:1)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.deploy(AbstractSimpleRealDeployer.java:65)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:728)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:749)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:669)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:495)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:354)
at org.jboss.test.deployers.vfs.deployer.jaxp.DeployerClientTestCase.assertDeploy(DeployerClientTestCase.java:57)
at org.jboss.test.deployers.vfs.deployer.jaxp.DeployerClientTestCase.assertDeploy(DeployerClientTestCase.java:46)
at org.jboss.test.deployers.vfs.deployer.bean.test.BeanManagedDeploymentUnitTestCase.testBeanManagedObject(BeanManagedDeploymentUnitTestCase.java:59)
If I add a value with any whitespace I see:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <bean name="AnnotatedBean" class="org.jboss.test.deployers.vfs.deployer.bean.support.AnnotatedBean"> <annotation>@org.jboss.managed.api.annotation.ManagementComponent(type="MCBean",subtype="AnnotationTest")</annotation> <!-- Test --> <property name="propWithXmlOverride"> <annotation>@org.jboss.managed.api.annotation.ManagementProperty(name="prop3", mappedName="propWithXmlOverride", description="ManagedProperty defined via xml annotation")</annotation> 10 </property> </bean>
I see:
1969 ERROR [AbstractKernelController] Error installing to Configured: name=AnnotatedBean state=Instantiated
java.lang.NumberFormatException: For input string: "
10"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.valueOf(Integer.java:553)
at sun.beans.editors.IntEditor.setAsText(IntEditor.java:21)
at org.jboss.reflect.plugins.ValueConvertor.convertValue(ValueConvertor.java:120)
at org.jboss.reflect.spi.PrimitiveInfo.convertValue(PrimitiveInfo.java:169)
at org.jboss.beans.metadata.plugins.StringValueMetaData.getValue(StringValueMetaData.java:101)
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoint(Configurator.java:500)
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoint(Configurator.java:444)
at org.jboss.kernel.plugins.config.Configurator.getPropertySetterJoinPoints(Configurator.java:408)
at org.jboss.kernel.plugins.config.AbstractKernelConfigurator.getPropertySetterJoinPoints(AbstractKernelConfigurator.java:120)
at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:59)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:137)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:1)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
If the property value is given with no whitespace it deploys correctly. We should be able to specify a property with just an annotation. In terms of the whitespace behavior, I would say the StringValueMetaData should also have a trim property that is also true by default.