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.
sample:
@RequestScoped
public class BeanA {
@Inject BeanB b;
@PreDestroy
public void destroyMe() {
b.dosomething();
}
}
and
@RequestScoped
public class BeanB {
public void dosomething() {..}
@PreDestroy
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?
LieGrue,
strub