We're running Weld 2.0.3.Final in a Java SE environment and have encountered a precarious situation where it seems like Weld is not consistent in handling the lifecycle of singleton beans.

We have singleton beans with @PostConstruct and @PreDestroy methods. During Weld.initialize() all @PostConstruct methods are called. But during @PreDestroy methods are never called during Weld.shutdown(). @PreDestroy is only called on beans which are @ApplicationScoped.

Is this according to specification or a bug?