Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-790

Validation of InjectionTargets prevents firing of ProcessInjectionTarget<X> for non-contextual EE components

    XMLWordPrintable

Details

    Description

      The eager validation of InjectionTargets introduced via [1] to fix WELD-761 results in an issue when a container tries to fire ProcessInjectionTarget<T> events for injection into non-contextual Java EE components. When the container fires ProcessInjectionTarget events before Beans are deployed via bootstrap.deployBeans, the BDA processing is not complete and hence resolution fails during validation as shown below. The container also needs to fire these events before AfterBeanDiscovery as pointed at [2] and hence this eager validation is an issue.

      – Error with a local integration of GF3.1 trunk and WELD 1.1.0.CR1 ----
      [#|2010-12-14T14:31:10.044+0530|SEVERE|glassfish3.1|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=109;_ThreadName=admin-thread-pool-4848(1);|Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [TestBean] with qualifiers [@Default] at injection point [[field] @Inject TestServlet.tb]
      org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [TestBean] with qualifiers [@Default] at injection point [[field] @Inject TestServlet.tb]
      at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:305)
      at org.jboss.weld.manager.SimpleInjectionTarget.<init>(SimpleInjectionTarget.java:107)
      at org.jboss.weld.manager.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:1032)
      at org.jboss.weld.manager.BeanManagerImpl.fireProcessInjectionTarget(BeanManagerImpl.java:1220)
      at org.glassfish.weld.WeldDeployer.fireProcessInjectionTargetEvents(WeldDeployer.java:237)
      at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:161)
      at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:128)
      at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:266)
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:459)
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
      at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:369)
      – Error with a local integration of GF3.1 trunk and WELD 1.1.0.CR1 ----

      [1] https://github.com/weld/core/commit/eb0f2020ee8e79ff04fe8d929837b0bedf80b19b
      [2] http://java.net/jira/browse/GLASSFISH-11135?focusedCommentId=130738&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_130738

      Attachments

        Activity

          People

            pmuiratbleepbleep Pete Muir (Inactive)
            sivakumart_jira Sivakumar Thyagarajan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: