[cdi-dev] cyclic references

Mark Struberg struberg at yahoo.de
Sat Nov 24 11:58:28 EST 2012

Hi Folks!

I know we already discussed that cyclic references in @PostConstruct and @Inject methods are not allowed (btw, did we also nail this down in the spec properly? This is implicitly defined in commons-annotations).

But what about @PreDestroy? As the destroy order is not defined for normalscoped beans it could happen that a bean already got wiped and destroyed while another one likes to access it. So it's not only a problem of cycles, but might also happen without.



public class BeanA {
  @Inject BeanB b;

  public void destroyMe() {



public class BeanB {
  public void dosomething() {..}

  public void dropDatabaseConnection() {...}


Now lets imagine that BeanB got destroyed earlier than BeanA ....

It's atm purely random. Imo this is ok, but should we point users to this behaviour?


More information about the cdi-dev mailing list