This figure shows the stateless session bean life cycle. There are two states: does not exist and method-ready pool. To transition from does not exist to method-ready pool, the following occurs: newInstance method is invoked, dependency injection takes place (if any), setSessionContext method is invoked, and the session bean method annotated as PostConstruct or the ejbCreate method (if defined) is invoked. To transition from the method-ready pool to the does not exist state, the following occurs: the session bean method annotated as PreDestroy or the ejbRemove method (if defined) is invoked. While in the method-ready pool state, session bean methods can be invoked as can the ejbTimeout method (if the session bean implements the TimedObject interface).