Definitely odd. This line should trigger object inflation and turning it to committed state:

String code = si.getUser().getUserType().getCode();

Maybe worth running in debugger to see what's really going on... Maybe something from CayenneDataObject got overridden, etc. Specifically check BaseContext.prepareForAccess(..) method that should handle inflating the object.

Andrus

On Apr 28, 2010, at 4:05 PM, Julius Spencer wrote:

Hi Andrus,

Thank you for the response. Here is the code taking a user and putting it into the SessionInfo.

TCMSessionInfo si = (TCMSessionInfo) getContext().getSessionInfo(false);
                                si = (TCMSessionInfo) 
getContext().getSessionInfo(true);
si.setUser((TCMUser) si.getDefaultDataContext().localObject(user.getObjectId(), null));

later I check that there is a user in the session, but when I try to get a related DataObject:

TCMSessionInfo si = (TCMSessionInfo) cdrContext.getExistingSessionInfo();
                if(null!=si.getUser())
                        String code = si.getUser().getUserType().getCode();
                
the the user appears to look like this:
                {<ObjectId:TCMUser, ZID=200>; hollow; []}

Thanks for any advice.


On 28/04/2010, at 7:51 PM, Andrus Adamchik wrote:

Hi Julius,

How was it "shifted" to a new context? Maybe you can provide some sample code?

Andrus

On Apr 28, 2010, at 11:37 AM, Julius Spencer wrote:

Hi,

I'm a new user of Cayenne and I have a problem with an object I'm not expecting to be "hollow".

I am using STABLE-3.0 and have fetched a DataObject then shifted it to a new DataContext and then it seems to stay HOLLOW even after querying a to-one relationship.

Just wondering if anyone has come across this or maybe it's a common mistake.

Regards,
Julius.




Reply via email to