Skip to main content

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

See thread,

http://www.eclipse.org/forums/index.php/t/209146/


Tim Martin-11 wrote:
> 
> 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
> 
> 
> 
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 


-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland 
http://www.eclipse.org/eclipselink/
 EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
TopLink 
Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink , 
http://wiki.oracle.com/page/TopLink TopLink 
Forums:  http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink , 
http://www.nabble.com/EclipseLink-f26430.html EclipseLink 
Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence 
Blog:  http://java-persistence-performance.blogspot.com/ Java Persistence
Performance 
-- 
View this message in context: http://old.nabble.com/EmbeddedObjects---fields-not-populated-correctly-tp31603205p31648032.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top