The following will not return a populated bean proxy:
beanSession.mapAndRegister(subject, bean);
BeanProxy beanProxy = beanSession.fetchBeanProxy(subject);
The reason is that until save is issued, nothing in the bean is actually put into the session. This is expected behavior, but was a head scratcher.
Solutions are
(1) serialize the bean whenever such a proxy is requested
(2) hand off the serialization to the conversion utility in BeanProxies.
The best solution is #1 since #2 does not register the beans or proxies with the session.