On Ivan's notes, p. 301, the diagram says for any system exception thrown by @PostConstruct or @PreDestroy,
1. if it is a singleton bean, the container will rollback any container started transaction. (
I believe this singleton will be discarded as well)
2. If it is not a singleton bean, the container will discard the
EJB instance.
But in the JSR-318, p.391, table 19, it says
Handling of exception thrown by a postconstruct or predestroy method of a stateful or stateless or singleton :
bean method condition: bean is stateful/stateless/singleton
container action: log the exception, if singleton rollback any container-started transaction, discard instance.
So, obviously, the container will discard the singleton when a system exception is thrown from @PostConstruct or @PreDestroy.