<div dir="ltr"><div><div><div>Thanks Arjan. This definitely helped.<br><br></div>My basic point was that the statement in <i>Section 1.2.2</i> implies that the <i>CDI container destroys the Session bean instance</i> - which is definitely not the case (you seem to share the same opinion), because the CDI container is dealing with a proxy anyway.<br><i>Section 7.3.3</i>
 conveys this more accurately IMO. That&#39;s I wanted to point this out and
 check what the experts feel about (maybe slightly) re-wording Section 
1.2.2 to avoid any ambiguity or confusion :-)<br><br></div>Regards<br></div>Abhishek<br><br><div class="gmail_extra"><div class="gmail_quote">On Fri, Feb 13, 2015 at 3:37 PM, arjan tijms <span dir="ltr">&lt;<a href="mailto:arjan.tijms@gmail.com" target="_blank">arjan.tijms@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<span class=""><br><br>On Friday, February 13, 2015, Abhishek Gupta &lt;<a href="mailto:abhirockzz@gmail.com" target="_blank">abhirockzz@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello folks - just wanted to gain some clarity here<br><div><br><b>Section 1.2.2</b> of the spec doc states that <br><br>[quote] <i>Any session bean instance obtained via the dependency injection service is a contextual instance. It is bound to a lifecycle context and is available to other objects that execute in that context. The container automatically creates the instance when it is needed by a client. When the context ends,the container <b>automatically destroys the instance</b></i> [/quote]<br><br>(being a relative beginner) My first impression after reading this statement was the following - &quot;<i>If I use @Inject for DI of an EJB into my class, the CDI container takes over it&#39;s control and actually destroys the instance after the context ends</i>&quot;.<br><br>If we think in terms of @Stateless EJBs, this <i>might </i>not be the case</div><div></div></div></blockquote><div><br></div></span><div>Indeed, and I would even say IS not the case. Even if the container would not pool instances (like JBoss effectively does since Wildfly 8), then every call to the injected bean can still go to another instance of the injected bean. </div><div><br></div><div>There&#39;s therefor IMHO no concept of a bean to destroy, since there was never any particular instance associated with the context in which the bean was injected.</div><div><br></div><div>The way I see it, a stateless bean from the point of view of a client is close to an MDB or Servlet. You &quot;send&quot; a call to it, but there are no guarantees which actual instance is going to service it.</div><div><br></div><div>Hope this is correct and hope it helps,</div><div><br></div><div>Kind regards,</div><div>Arjan Tijms</div><div class=""><div class="h5"><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>since the EJB container might choose to return the instance to back to the EJB pool (I understand that this is not mandated by the EJB spec). Keeping this in mind, do you think that the statement in section 1.2.2 is correctly framed since it seems as if the CDI container will actually destroy the EJB instance?<br><br>I think this is better specified in <b>Section 7.3.3</b> (this section dives in deeper)<br><br>[quote] <i>When the destroy() method is called, the container simply discards this internal reference</i>.[/quote]<br><br>This might be a minor thing - but I am just trying to provide a &#39;beginner&#39; point of view of and how he/she might interpret the contents of the specification with regards to its relationship with EJBs<br><br></div><div>Feel free to correct me in case I am missing something.<br></div><div><br>Best Regards<br>Abhishek<br></div></div>
</blockquote>
</div></div></blockquote></div><br></div></div>