Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6566

SAR deployer uses wrong MBean class to resolve source Method for property injection

    XMLWordPrintable

Details

    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

          Activity

            People

              spyrkob Bartosz Spyrko-Smietanko
              spyrkob Bartosz Spyrko-Smietanko
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: