6 Replies Latest reply on Apr 22, 2014 2:19 AM by jharting

    MemoryLeak in javax.inject.Provider chain?


      Please take a look on three CDI Beans below:


      public class A {

          @Inject Provider<B> b;




      public class B {}




      public class Main {

          @Inject private Provider<A> a;

          public void foo(@Observes ContainerInitialized event, @Parameters List<String> parameters) {

              while (true)





      After each while loop in Main the number of A instances increases.

      The interesting point is: if A @Inject's B directly (without Provider), no memory leak occurs.


      My observation was: as soon as more that one @Inject Provider appears in a chain of injection points, the memory leak occurs.


      The same problem occurs in Weld-SE and in JEE6/7 environment on Wildfly and JBoss AS 7.1.3 if Main bean is a @Stateless EJB or a @Webservice.


      My questions are:

      1. Do I miss some basic understanding about using javax.inject.Provider?
      2. Or is this just a bug in Weld and I should create a bug ticket?



      In case somebody want to try it out, I uploaded a test maven project to GitHub: