Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] EmbeddedObjects - fields not populated correctly

We have just moved over from toplink to eclipselink, and none of our embedded objects are being correctly populated on calls to em.find() (maybe others to). When debugging I can see that the correctly populated object has been returned from the db (and is in a cache?), but when building / copying/ cloning that object to return to the caller of em.find() it is failing to pull the value out of that object into the returned object. It appears that in here

(org.eclipse.persistence.internal.descriptors.PersistenceObjectAttributeAccessor.getAttributeValueFromObject(Object) ):

    public Object getAttributeValueFromObject(Object object) {
        return ((PersistenceObject)object)._persistence_get(this.attributeName);
    }


the object passed in is the object containing the embedded object, yet this.attributeName is name of the field in the embedded object - in this case 'value' and returns null as there is no attribute named 'value' in the object passed in. I can only see that it would work if the embedded object itself was passed in, or if the attribute name was name of the embedded object.

in the calling method next down the stack frame the direct to field mapping is org.eclipse.persistence.mappings.DirectToFieldMapping[value- - >WSSDBA.WBR_USER.ACHOLLOOKUPONLY].

Something is not quite right with the weaving or something elseewhere, has anyone seen anything similar ?

Eclipselink 2.2.0.

I am trying to reproduce this is a standalone app/ ear but not having much look reproducing in such a scenario.

Thanks



this	PersistenceObjectAttributeAccessor	PersistenceObjectAttributeAccessor  (id=4134)	PersistenceObjectAttributeAccessor	4134	
	attributeField	Field	Field  (id=4156)	Field	4156	
	attributeName	String	"value" (id=4096)	String	4096	
	isReadOnly	boolean	false	boolean	
	isWriteOnly	boolean	false	boolean	


object	Object	User  (id=3760)	User	3760	
	_persistence_fetchGroup	FetchGroup	null	null	
	_persistence_inLiquidityGroup_vh	WeavedAttributeValueHolderInterface	ValueHolder  (id=3822)	ValueHolder	3822	
	_persistence_listener	PropertyChangeListener	null	null	
	_persistence_portfolio_vh	WeavedAttributeValueHolderInterface	ValueHolder  (id=3851)	ValueHolder	3851	
	_persistence_primaryKey	Object	"WSS" (id=3852)	String	3852	
	_persistence_session	Session	null	null	
	_persistence_shouldRefreshFetchGroup	boolean	false	boolean	
	acHolLookupOnly	JpaBoolean	JpaBoolean  (id=3853)	JpaBoolean	3853	
		_persistence_listener	PropertyChangeListener	null	null	
		value	String	"0" (id=4172)	String	4172	
	areaUnit	String	"0058" (id=3854)	String	3854	
	aspClientId	int	0	int	
	bankManager	JpaBoolean	JpaBoolean  (id=3855)	JpaBoolean	3855	
	city	String	"ZAOPS" (id=3856)	String	3856	
	cityUnit	String	"0054" (id=3857)	String	3857	
	cmAllowCpwAdjustments	JpaBoolean	JpaBoolean  (id=3858)	JpaBoolean	3858	
	cmAllowOverrideExtBals	JpaBoolean	JpaBoolean  (id=3859)	JpaBoolean	3859	
	cmAllowOverrideWssBals	JpaBoolean	JpaBoolean  (id=3860)	JpaBoolean	3860	
	cmCashAdjusmentsToBeReviewed	JpaBoolean	JpaBoolean  (id=3861)	JpaBoolean	3861	
	cmTargetBalancingToBeReviewed	JpaBoolean	JpaBoolean  (id=3862)

Daemon Thread [p: thread-pool-1; w: 93] (Suspended (breakpoint at line 30 in PersistenceObjectAttributeAccessor))	
	PersistenceObjectAttributeAccessor.getAttributeValueFromObject(Object) line: 30	
	DirectToFieldMapping(DatabaseMapping).getAttributeValueFromObject(Object) line: 523	
	DirectToFieldMapping(AbstractDirectMapping).valueFromRow(AbstractRecord, JoinedAttributeManager, ObjectBuildingQuery, CacheKey, AbstractSession, boolean) line: 1273	
	DirectToFieldMapping(DatabaseMapping).readFromRowIntoObject(AbstractRecord, JoinedAttributeManager, Object, CacheKey, ObjectBuildingQuery, AbstractSession, boolean) line: 1325	
	ObjectBuilder.buildAttributesIntoObject(Object, CacheKey, AbstractRecord, ObjectBuildingQuery, JoinedAttributeManager, boolean, AbstractSession) line: 344	
	AggregateObjectMapping.buildAggregateFromRow(AbstractRecord, Object, CacheKey, JoinedAttributeManager, ObjectBuildingQuery, boolean, AbstractSession, boolean) line: 362	
	AggregateObjectMapping.readFromRowIntoObject(AbstractRecord, JoinedAttributeManager, Object, CacheKey, ObjectBuildingQuery, AbstractSession, boolean) line: 1415	
	ObjectBuilder.buildAttributesIntoObject(Object, CacheKey, AbstractRecord, ObjectBuildingQuery, JoinedAttributeManager, boolean, AbstractSession) line: 344	
	ObjectBuilder.buildProtectedObject(boolean, ObjectBuildingQuery, AbstractRecord, AbstractSession, Object, ClassDescriptor, JoinedAttributeManager) line: 821	
	ObjectBuilder.buildObject(boolean, ObjectBuildingQuery, AbstractRecord, AbstractSession, Object, ClassDescriptor, JoinedAttributeManager) line: 657	
	ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuildingQuery, AbstractRecord, UnitOfWorkImpl, Object, ClassDescriptor, JoinedAttributeManager) line: 612	
	ObjectBuilder.buildObjectInUnitOfWork(ObjectBuildingQuery, JoinedAttributeManager, AbstractRecord, UnitOfWorkImpl, Object, ClassDescriptor) line: 565	
	ObjectBuilder.buildObject(ObjectBuildingQuery, AbstractRecord, JoinedAttributeManager) line: 497	
	ObjectBuilder.buildObject(ObjectLevelReadQuery, AbstractRecord) line: 456	
	ReadObjectQuery(ObjectLevelReadQuery).buildObject(AbstractRecord) line: 723	
	ReadObjectQuery.registerResultInUnitOfWork(Object, UnitOfWorkImpl, AbstractRecord, boolean) line: 766	
	ReadObjectQuery.executeObjectLevelReadQuery() line: 451	
	ReadObjectQuery(ObjectLevelReadQuery).executeDatabaseQuery() line: 1080	
	ReadObjectQuery(DatabaseQuery).execute(AbstractSession, AbstractRecord) line: 808	
	ReadObjectQuery(ObjectLevelReadQuery).execute(AbstractSession, AbstractRecord) line: 1040	
	ReadObjectQuery.execute(AbstractSession, AbstractRecord) line: 412	
	ReadObjectQuery(ObjectLevelReadQuery).executeInUnitOfWork(UnitOfWorkImpl, AbstractRecord) line: 1126	
	RepeatableWriteUnitOfWork(UnitOfWorkImpl).internalExecuteQuery(DatabaseQuery, AbstractRecord) line: 2842	
	RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery, AbstractRecord, int) line: 1521	
	RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery, AbstractRecord) line: 1503	
	RepeatableWriteUnitOfWork(AbstractSession).executeQuery(DatabaseQuery) line: 1463	
	EntityManagerImpl.executeQuery(ReadObjectQuery, LockModeType, AbstractSession) line: 781	
	EntityManagerImpl.findInternal(ClassDescriptor, AbstractSession, Object, LockModeType, Map<String,Object>) line: 725	
	EntityManagerImpl.find(Class<T>, Object, LockModeType, Map<String,Object>) line: 619	
	EntityManagerImpl.find(Class<T>, Object) line: 498	
	EntityManagerWrapper.find(Class<T>, Object) line: 291	
	UserServiceEJB.getUserFullWithLazyProps(String, EnumSet<EnumUserLazyProps>) line: 104	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	EJBSecurityManager.runMethod(Method, Object, Object[]) line: 1011	
	SecurityUtil.invoke(Method, Invocation, Object, Object[], Container, SecurityManager) line: 175	
	StatelessSessionContainer(BaseContainer).invokeTargetBeanMethod(Method, Invocation, Object, Object[], SecurityManager) line: 2929	
	StatelessSessionContainer(BaseContainer).intercept(Invocation) line: 4020	
	EJBObjectInvocationHandler.invoke(Class, Method, Object[]) line: 203	
	EJBObjectInvocationHandlerDelegate.invoke(Object, Method, Object[]) line: 77	
	$Proxy1079.getUserFullWithLazyProps(String, EnumSet) line: not available	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	ReflectiveTie._invoke(String, InputStream, ResponseHandler) line: 154	
	CorbaServerRequestDispatcherImpl.dispatchToServant(Object, CorbaMessageMediator, byte[], ObjectAdapter) line: 687	
	CorbaServerRequestDispatcherImpl.dispatch(MessageMediator) line: 227	
	CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediator) line: 1846	
	CorbaMessageMediatorImpl.handleRequest(RequestMessage, CorbaMessageMediator) line: 1706	
	CorbaMessageMediatorImpl.handleInput(RequestMessage_1_2) line: 1088	
	RequestMessage_1_2.callback(MessageHandler) line: 223	
	CorbaMessageMediatorImpl.handleRequest(MessageMediator) line: 806	
	CorbaMessageMediatorImpl.dispatch() line: 563	
	CorbaMessageMediatorImpl.doWork() line: 2567	
	ThreadPoolImpl$WorkerThread.run() line: 555


Back to the top