And it keeps getting more interesting. I decided that I wanted to be able to guarantee that all code is getting the same EMF, just for the sake of sanity. So I created a little singleton/factory pattern, and replaced all @PersistenceUnit annotations with calls to MyFactory.getEMF(), and I replaced all of the Persistence.createEntityManagerFactory() calls with the same.
Logging the hashcodes has confirmed that everything is using the same EMF now. w00t!
Oh, but here's the sad part...I'm still getting the same stale-data behaviour: I enter data into my JSF pages and it doesn't show up in my web services.
There must be something else we're doing wrong. :-(
[Message sent by forum member 'pohl' (pohl)]
http://forums.java.net/jive/thread.jspa?messageID=208523