So I have a question about the spec section 3.4.7 Session Object Identity. If you run the examples in Glassfish 4 you get the expected results. So no problem there. What's interesting is if you replace @EJB with @Inject then the .equals() method no longer behaves as specified in 3.4.7. Now I know the spec is specifically for the @EJB annotation and @Inject is different but I still found this to be curious behavior. Was this expected? not expected?