The EJB 3.0 spec states in section 16.2.1 :
In general, lookups of objects in the JNDI java: namespace are required to return a new instance of
the requested object every time. Exceptions are allowed for the following:
• The container knows the object is immutable (for example, objects of type
java.lang.String), or knows that the application can’t change the state of the object.
• The object is defined to be a singleton, such that only one instance of the object may exist in
the JVM.
• The name used for the lookup is defined to return an instance of the object that might be
shared. The name java:comp/ORB is such a name.
In these cases, a shared instance of the object may be returned. In all other cases, a new instance of the
requested object must be returned on each lookup.
[Message sent by forum member 'becomingguru' (becomingguru)]
http://forums.java.net/jive/thread.jspa?messageID=296332