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

@Inject broken for parameterized interfaces

XMLWordPrintable

    • Hide

      See the attached test project.
      Works on JBoss AS 7.1.1
      Fails on Wildfly 8.1.0 Final

      Show
      See the attached test project. Works on JBoss AS 7.1.1 Fails on Wildfly 8.1.0 Final

      @Inject is broken on Wildfly 8.1.0 Final when the interface to be injected is parameterized with a type that extends another type. Example code:

      public interface Foo<T extends Serializable> { } // will fail
      public class FooBean implements Foo { }
      public interface Bar<T> { } // will work
      public class BarBean implements Bar { }
      @Singleton
      @Startup
      public class TestSingleton {
          @Inject
          private Instance<Foo> foo;
          @Inject
          private Instance<Bar> bar;
          @PostConstruct
          public void init() {
              System.out.println("##### foo is unsatisfied = " + foo.isUnsatisfied());
              for (Foo f : foo)
                  System.out.println("foo is: " + f.getClass().getCanonicalName());
              System.out.println("##### bar is unsatisfied = " + bar.isUnsatisfied());
              for (Bar b : bar)
                  System.out.println("bar is: " + b.getClass().getCanonicalName());
          }
      }
      

      output:

      22:30:25,904 INFO  [stdout] (ServerService Thread Pool -- 50) ##### foo is unsatisfied = true
      22:30:25,905 INFO  [stdout] (ServerService Thread Pool -- 50) ##### bar is unsatisfied = false
      

      The same code works on JBoss AS 7.1.1, so something must have changed for Wildfly.

      The attached small example project can be used to reproduce the error.

        1. CDIMultiModuleTest.zip
          10 kB
        2. CDIMultiModuleTest.zip
          10 kB
        3. server.log
          263 kB

              rhn-engineering-jharting Jozef Hartinger
              doegi_jira Alexander Langer (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: