socorro
unread,Apr 9, 2009, 3:57:57 PM4/9/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to beanlib
Hi,
I've been working with cloning some hibernate objects and have unit
tests that seem to work nicely. Then, I went to integrate the cloning
into my application and found that what had worked in the unit tests
failed in the app with (apologies, long stack trace):
-----------------------------
13:44:04,341 ERROR BeanPopulator:39 -
propertyName=scheduledPadLocations
readerMethod=public java.util.Set
alma.tmcdb.domain.Antenna.getScheduledPadLocations()
setterMethod=public void
alma.tmcdb.domain.Antenna.setScheduledPadLocations(java.util.Set)
fromBean=BaseElement ( alma.tmcdb.domain.Antenna@207203 id = 1
name = DV01 configurationId = 0 type = Antenna )
toBean=BaseElement ( alma.tmcdb.domain.Antenna@2071e4 id = null
name = DV01 configurationId = null type = Antenna )
org.hibernate.HibernateException: collection is not associated with
any session
at
org.hibernate.collection.AbstractPersistentCollection.forceInitialization
(AbstractPersistentCollection.java:471)
at org.hibernate.Hibernate.initialize(Hibernate.java:332)
at
net.sf.beanlib.hibernate3.Hibernate3CollectionReplicator.replicateCollection
(Hibernate3CollectionReplicator.java:78)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:101)
at net.sf.beanlib.provider.BeanTransformer.transform
(BeanTransformer.java:224)
at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:201)
at net.sf.beanlib.provider.BeanPopulator.processSetterMethod
(BeanPopulator.java:172)
at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:
270)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean
(ReplicatorTemplate.java:174)
at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean
(BeanReplicator.java:173)
at
net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean
(Hibernate3JavaBeanReplicator.java:71)
at
net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable
(ReplicatorTemplate.java:125)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:120)
at net.sf.beanlib.provider.BeanTransformer.transform
(BeanTransformer.java:224)
at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:201)
at net.sf.beanlib.provider.BeanPopulator.processSetterMethod
(BeanPopulator.java:172)
at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:
270)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean
(ReplicatorTemplate.java:174)
at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean
(BeanReplicator.java:173)
at
net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean
(Hibernate3JavaBeanReplicator.java:71)
at
net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable
(ReplicatorTemplate.java:125)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:120)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:67)
at net.sf.beanlib.hibernate3.Hibernate3CollectionReplicator.replicate
(Hibernate3CollectionReplicator.java:143)
at
net.sf.beanlib.provider.replicator.CollectionReplicator.replicateCollection
(CollectionReplicator.java:88)
at
net.sf.beanlib.hibernate3.Hibernate3CollectionReplicator.replicateCollection
(Hibernate3CollectionReplicator.java:79)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:101)
at net.sf.beanlib.provider.BeanTransformer.transform
(BeanTransformer.java:224)
at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:201)
at net.sf.beanlib.provider.BeanPopulator.processSetterMethod
(BeanPopulator.java:172)
at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:
270)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean
(ReplicatorTemplate.java:174)
at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean
(BeanReplicator.java:173)
at
net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean
(Hibernate3JavaBeanReplicator.java:71)
at
net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable
(ReplicatorTemplate.java:125)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:120)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:67)
at net.sf.beanlib.hibernate3.Hibernate3CollectionReplicator.replicate
(Hibernate3CollectionReplicator.java:143)
at
net.sf.beanlib.provider.replicator.CollectionReplicator.replicateCollection
(CollectionReplicator.java:88)
at
net.sf.beanlib.hibernate3.Hibernate3CollectionReplicator.replicateCollection
(Hibernate3CollectionReplicator.java:79)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:101)
at net.sf.beanlib.provider.BeanTransformer.transform
(BeanTransformer.java:224)
at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:201)
at net.sf.beanlib.provider.BeanPopulator.processSetterMethod
(BeanPopulator.java:172)
at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:
270)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean
(ReplicatorTemplate.java:174)
at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean
(BeanReplicator.java:173)
at
net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean
(Hibernate3JavaBeanReplicator.java:71)
at
net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable
(ReplicatorTemplate.java:125)
at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate
(ReplicatorTemplate.java:120)
at net.sf.beanlib.provider.BeanTransformer.transform
(BeanTransformer.java:224)
at net.sf.beanlib.hibernate.HibernateBeanReplicator.copy
(HibernateBeanReplicator.java:133)
at net.sf.beanlib.hibernate.HibernateBeanReplicator.copy
(HibernateBeanReplicator.java:111)
at alma.tmcdb.cloning.CloningUtils.cloneConfiguration
(CloningUtils.java:102)
at alma.obops.dam.HibernateDao.cloneConfiguration(HibernateDao.java:
240)
at
alma.obops.dam.tmcdb.service.ConfigurationServiceImpl.cloneConfiguration
(ConfigurationServiceImpl.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:45)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection
(AopUtils.java:310)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:149)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke
(TransactionInterceptor.java:106)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke
(JdkDynamicAopProxy.java:204)
at $Proxy1.cloneConfiguration(Unknown Source)
at alma.obops.tmcdbgui.handlers.CloneConfigurationAction.run
(CloneConfigurationAction.java:49)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:583)
at org.eclipse.jface.action.ActionContributionItem.access$2
(ActionContributionItem.java:500)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent
(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:
3401)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:
2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault
(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:
149)
at alma.obops.tmcdbgui.rcp.Application.start(Application.java:21)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run
(EclipseAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication
(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start
(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:45)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
-----------------------------
The only thing I can think of that is different between how my code is
invoked in the unit test and how it is invoked in the app is that in
the unit test, I create some objects in memory, persist them using
hibernate, then clone them, whereas in the app I am querying the
database (with hibernate), getting back some hibernate (proxy?)
object, then cloning that. The latter fails, while the former
succeeds. Has anyone else seen this type of behavior? Any suggestions
on how to debug?
Thanks, Steve