Details
-
Bug
-
Resolution: Done
-
Major
-
10.0.0.Final
Description
If using a <value-factory> or <inject> element with "parameter" attribute in jboss-service.xml to inject a value from one bean to another, a "java.lang.IllegalArgumentException: object is not an instance of declaring class" error is raised during deployment.
jboss-service.xml
<server xmlns="urn:jboss:service:7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:jboss:service:7.0 jboss-service_7_0.xsd"> <mbean code="com.test.redhat.mbean.OtherValueFactory" name="test:type=OtherValueFactory"> <attribute name="WelcomeString">Welcome</attribute> <attribute name="CustName">Other</attribute> </mbean> <mbean code="com.test.redhat.mbean.TestValueFactory" name="test:type=SarTestValueFactory"> <depends>test:type=OtherValueFactory</depends> <attribute name="WelcomeString">Welcome</attribute> <attribute name="CustName"> <value-factory bean="test:type=OtherValueFactory" method="getNameOfCustomer"> <parameter class="java.lang.String">Foo</parameter> </value-factory> </attribute> </mbean> </server>
Full error:
16:54:36,505 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0027: Starting deployment of "test.sar" (runtime-name: "test.sar") 16:54:36,690 WARN [org.jboss.msc.inject] (MSC service thread 1-2) MSC000100: Unexpected failure to uninject public void com.test.redhat.mbean.TestValueFactory.setCustName(java.lang.String): java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.jboss.msc.value.MethodValue.getValue(MethodValue.java:62) at org.jboss.msc.value.CachedValue.getValue(CachedValue.java:54) at org.jboss.msc.value.Values.getValues(Values.java:68) at org.jboss.msc.value.Values.getValues(Values.java:82) at org.jboss.msc.inject.MethodInjector.uninject(MethodInjector.java:119) at org.jboss.msc.service.ServiceControllerImpl$StartTask.performInjections(ServiceControllerImpl.java:1923) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1876) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 16:54:36,691 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.mbean.service.test:type=SarTestValueFactory.create: org.jboss.msc.service.StartException in service jboss.mbean.service.test:type=SarTestValueFactory.create: Failed to start service at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.jboss.msc.inject.InjectionException: Injection failed at org.jboss.msc.inject.MethodInjector.inject(MethodInjector.java:102) at org.jboss.msc.service.ServiceControllerImpl.doInject(ServiceControllerImpl.java:1672) at org.jboss.msc.service.ServiceControllerImpl.access$2000(ServiceControllerImpl.java:51) at org.jboss.msc.service.ServiceControllerImpl$StartTask.performInjections(ServiceControllerImpl.java:1917) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1876) ... 3 more Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.jboss.msc.value.MethodValue.getValue(MethodValue.java:62) at org.jboss.msc.value.CachedValue.getValue(CachedValue.java:54) at org.jboss.msc.value.Values.getValues(Values.java:68) at org.jboss.msc.value.Values.getValues(Values.java:82) at org.jboss.msc.inject.MethodInjector.inject(MethodInjector.java:92) ... 7 more 16:54:36,697 INFO [com.test.redhat.mbean.OtherValueFactory] (ServerService Thread Pool -- 58) >> TestValuFactory.start() invoked 16:54:36,698 INFO [stdout] (ServerService Thread Pool -- 58) TestValuFactory.start() invoked 16:54:36,776 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "test.sar")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.mbean.service.test:type=SarTestValueFactory.create" => "org.jboss.msc.service.StartException in service jboss.mbean.service.test:type=SarTestValueFactory.create: Failed to start service Caused by: org.jboss.msc.inject.InjectionException: Injection failed Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class"}}
Attachments
Issue Links
- clones
-
JBEAP-4389 SAR deployer uses wrong MBean class to resolve source Method for property injection
-
- Closed
-