Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class?
[Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #135962] |
Wed, 06 May 2009 05:11 |
Eclipse User |
|
|
|
Originally posted by: dtuohy.stottlerhenke.com
Hello,
I've encountered a strange error when trying to update a teneo
hibernated object using Session.merge(). I am using Teneo 1.0.1, but
would be open to upgrading if it would help.
Take the following model:
- Abstract EClass Baz
- EClass Foo
- has multi-valued containment reference 'bars' of type Bar
- extends Baz
- EClass Bar
- extends Baz
When I do the following:
(1) Create 'foo' on the server, and save it to the DB using
session.save(foo);
(2) Send 'foo' to the client.
(3) Add new Bar 'bar' to foo.bars on the client.
(4) Send 'foo' back to the server (along with 'bar', via containment).
(5) Update foo in the DB by calling session.merge(foo)
I get the following exception:
java.lang.IllegalArgumentException: The class 'Baz' is not a valid
classifier
at
emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
at
org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
at
org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
at org.hibernate.type.EntityType.replace(EntityType.java:278)
at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
at
org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
at
org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
at org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
at
org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
at
org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
at
com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
The exception seems to occur when processing the new reference to 'bar',
and the fact that the reference is multi-valued and containment appears
to be important.
Any idea where I might be going wrong?
Thanks,
Daniel
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #135986 is a reply to message #135962] |
Wed, 06 May 2009 11:07 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
To be sure the containment reference of Foo.bars has elements of type Bar or type Baz?
btw, as support is given on the main emf newsgroup, I have added it as a cc.
gr. Martin
Daniel Tuohy wrote:
> Hello,
>
> I've encountered a strange error when trying to update a teneo
> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
> would be open to upgrading if it would help.
>
> Take the following model:
>
> - Abstract EClass Baz
> - EClass Foo
> - has multi-valued containment reference 'bars' of type Bar
> - extends Baz
> - EClass Bar
> - extends Baz
>
> When I do the following:
>
> (1) Create 'foo' on the server, and save it to the DB using
> session.save(foo);
> (2) Send 'foo' to the client.
> (3) Add new Bar 'bar' to foo.bars on the client.
> (4) Send 'foo' back to the server (along with 'bar', via containment).
> (5) Update foo in the DB by calling session.merge(foo)
>
> I get the following exception:
>
> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
> classifier
> at
> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>
> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
> at
> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>
> at
> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>
> at org.hibernate.type.EntityType.replace(EntityType.java:278)
> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
> at
> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>
> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
> at
> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
> at
> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
> at
> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>
> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
> at
> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>
>
> The exception seems to occur when processing the new reference to 'bar',
> and the fact that the reference is multi-valued and containment appears
> to be important.
>
> Any idea where I might be going wrong?
>
> Thanks,
> Daniel
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #136029 is a reply to message #135986] |
Wed, 06 May 2009 16:18 |
Eclipse User |
|
|
|
Originally posted by: dtuohy.stottlerhenke.com
The reference has elements of type Bar.
Martin Taal wrote:
> Hi Daniel,
> To be sure the containment reference of Foo.bars has elements of type
> Bar or type Baz?
>
> btw, as support is given on the main emf newsgroup, I have added it as a
> cc.
>
> gr. Martin
>
> Daniel Tuohy wrote:
>> Hello,
>>
>> I've encountered a strange error when trying to update a teneo
>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>> would be open to upgrading if it would help.
>>
>> Take the following model:
>>
>> - Abstract EClass Baz
>> - EClass Foo
>> - has multi-valued containment reference 'bars' of type Bar
>> - extends Baz
>> - EClass Bar
>> - extends Baz
>>
>> When I do the following:
>>
>> (1) Create 'foo' on the server, and save it to the DB using
>> session.save(foo);
>> (2) Send 'foo' to the client.
>> (3) Add new Bar 'bar' to foo.bars on the client.
>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>> (5) Update foo in the DB by calling session.merge(foo)
>>
>> I get the following exception:
>>
>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>> classifier
>> at
>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>
>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>> at
>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>
>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>
>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>> at
>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>> at
>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>
>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>> at
>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>
>>
>> The exception seems to occur when processing the new reference to
>> 'bar', and the fact that the reference is multi-valued and containment
>> appears to be important.
>>
>> Any idea where I might be going wrong?
>>
>> Thanks,
>> Daniel
>
>
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #136042 is a reply to message #136029] |
Wed, 06 May 2009 17:15 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
Looking at the stack trace it fails when traversing a many-to-one association. Is there a ismany=false association to
Baz in your model?
gr. Martin
Daniel Tuohy wrote:
> The reference has elements of type Bar.
>
> Martin Taal wrote:
>> Hi Daniel,
>> To be sure the containment reference of Foo.bars has elements of type
>> Bar or type Baz?
>>
>> btw, as support is given on the main emf newsgroup, I have added it as
>> a cc.
>>
>> gr. Martin
>>
>> Daniel Tuohy wrote:
>>> Hello,
>>>
>>> I've encountered a strange error when trying to update a teneo
>>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>>> would be open to upgrading if it would help.
>>>
>>> Take the following model:
>>>
>>> - Abstract EClass Baz
>>> - EClass Foo
>>> - has multi-valued containment reference 'bars' of type Bar
>>> - extends Baz
>>> - EClass Bar
>>> - extends Baz
>>>
>>> When I do the following:
>>>
>>> (1) Create 'foo' on the server, and save it to the DB using
>>> session.save(foo);
>>> (2) Send 'foo' to the client.
>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>> (5) Update foo in the DB by calling session.merge(foo)
>>>
>>> I get the following exception:
>>>
>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>> classifier
>>> at
>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>
>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>> at
>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>
>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>> at
>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at
>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>> at
>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>
>>>
>>> The exception seems to occur when processing the new reference to
>>> 'bar', and the fact that the reference is multi-valued and
>>> containment appears to be important.
>>>
>>> Any idea where I might be going wrong?
>>>
>>> Thanks,
>>> Daniel
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #136054 is a reply to message #136029] |
Wed, 06 May 2009 17:27 |
Eclipse User |
|
|
|
Originally posted by: dtuohy.stottlerhenke.com
Actually, scratch that! There was a layer of indirection that I had
forgotten about. The reference that is causing the trouble is, as you
suggest, of the abstract type 'Baz'.
So, with corrections, the actual model is:
- Abstract EClass Baz
- EClass Foo
- has multi-valued containment reference 'bars' of type Bar
- has multi-valued containment reference 'biffs' of type Biff
- extends Baz
- EClass Bar
- extends Baz
- has single-valued NON-containment reference 'baz' of type Baz
- EClass Biff
- extends Baz
And the process that causes the exception is:
(1) Create 'foo' on the server, and save it to the DB using
session.save(foo);
(2) Send 'foo' to the client.
(3) Add new Bar 'bar' to foo.bars on the client.
(4) Add new Biff 'biff' to foo.biffs on the client.
(4) Call bar.setBaz(biff) on the client
(5) Send 'foo' back to the server (along with 'bar', via containment).
(6) Update foo in the DB by calling session.merge(foo)
The problem, as far as I can tell, is on the 'baz' field of Bar, which
is filled by an object of type Biff.
daniel
Daniel Tuohy wrote:
> The reference has elements of type Bar.
>
> Martin Taal wrote:
>> Hi Daniel,
>> To be sure the containment reference of Foo.bars has elements of type
>> Bar or type Baz?
>>
>> btw, as support is given on the main emf newsgroup, I have added it as
>> a cc.
>>
>> gr. Martin
>>
>> Daniel Tuohy wrote:
>>> Hello,
>>>
>>> I've encountered a strange error when trying to update a teneo
>>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>>> would be open to upgrading if it would help.
>>>
>>> Take the following model:
>>>
>>> - Abstract EClass Baz
>>> - EClass Foo
>>> - has multi-valued containment reference 'bars' of type Bar
>>> - extends Baz
>>> - EClass Bar
>>> - extends Baz
>>>
>>> When I do the following:
>>>
>>> (1) Create 'foo' on the server, and save it to the DB using
>>> session.save(foo);
>>> (2) Send 'foo' to the client.
>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>> (5) Update foo in the DB by calling session.merge(foo)
>>>
>>> I get the following exception:
>>>
>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>> classifier
>>> at
>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>
>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>> at
>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>
>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>> at
>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at
>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>> at
>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>
>>>
>>> The exception seems to occur when processing the new reference to
>>> 'bar', and the fact that the reference is multi-valued and
>>> containment appears to be important.
>>>
>>> Any idea where I might be going wrong?
>>>
>>> Thanks,
>>> Daniel
>>
>>
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #136062 is a reply to message #136054] |
Wed, 06 May 2009 17:42 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
Can you file a bugzilla for this one? It would be great if you can attach a small test model to it also...
gr. Martin
Daniel Tuohy wrote:
> Actually, scratch that! There was a layer of indirection that I had
> forgotten about. The reference that is causing the trouble is, as you
> suggest, of the abstract type 'Baz'.
>
> So, with corrections, the actual model is:
> - Abstract EClass Baz
> - EClass Foo
> - has multi-valued containment reference 'bars' of type Bar
> - has multi-valued containment reference 'biffs' of type Biff
> - extends Baz
> - EClass Bar
> - extends Baz
> - has single-valued NON-containment reference 'baz' of type Baz
> - EClass Biff
> - extends Baz
>
>
> And the process that causes the exception is:
> (1) Create 'foo' on the server, and save it to the DB using
> session.save(foo);
> (2) Send 'foo' to the client.
> (3) Add new Bar 'bar' to foo.bars on the client.
> (4) Add new Biff 'biff' to foo.biffs on the client.
> (4) Call bar.setBaz(biff) on the client
> (5) Send 'foo' back to the server (along with 'bar', via containment).
> (6) Update foo in the DB by calling session.merge(foo)
>
> The problem, as far as I can tell, is on the 'baz' field of Bar, which
> is filled by an object of type Biff.
>
> daniel
>
> Daniel Tuohy wrote:
>> The reference has elements of type Bar.
>>
>> Martin Taal wrote:
>>> Hi Daniel,
>>> To be sure the containment reference of Foo.bars has elements of type
>>> Bar or type Baz?
>>>
>>> btw, as support is given on the main emf newsgroup, I have added it
>>> as a cc.
>>>
>>> gr. Martin
>>>
>>> Daniel Tuohy wrote:
>>>> Hello,
>>>>
>>>> I've encountered a strange error when trying to update a teneo
>>>> hibernated object using Session.merge(). I am using Teneo 1.0.1,
>>>> but would be open to upgrading if it would help.
>>>>
>>>> Take the following model:
>>>>
>>>> - Abstract EClass Baz
>>>> - EClass Foo
>>>> - has multi-valued containment reference 'bars' of type Bar
>>>> - extends Baz
>>>> - EClass Bar
>>>> - extends Baz
>>>>
>>>> When I do the following:
>>>>
>>>> (1) Create 'foo' on the server, and save it to the DB using
>>>> session.save(foo);
>>>> (2) Send 'foo' to the client.
>>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>>> (5) Update foo in the DB by calling session.merge(foo)
>>>>
>>>> I get the following exception:
>>>>
>>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>>> classifier
>>>> at
>>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>>
>>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>>
>>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>>
>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>>> at
>>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>>>
>>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>>>
>>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>>
>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>>> at
>>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>>
>>>>
>>>> The exception seems to occur when processing the new reference to
>>>> 'bar', and the fact that the reference is multi-valued and
>>>> containment appears to be important.
>>>>
>>>> Any idea where I might be going wrong?
>>>>
>>>> Thanks,
>>>> Daniel
>>>
>>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #136163 is a reply to message #136062] |
Mon, 11 May 2009 17:21 |
Eclipse User |
|
|
|
Originally posted by: dtuohy.stottlerhenke.com
Just for anyone who encounters this thread in the future, the Bugzilla
can be found at:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=275208
I believe there is enough information there to replicate, but if not
I'll certainly try to correct that.
Daniel
Martin Taal wrote:
> Hi Daniel,
> Can you file a bugzilla for this one? It would be great if you can
> attach a small test model to it also...
>
> gr. Martin
>
> Daniel Tuohy wrote:
>> Actually, scratch that! There was a layer of indirection that I had
>> forgotten about. The reference that is causing the trouble is, as you
>> suggest, of the abstract type 'Baz'.
>>
>> So, with corrections, the actual model is:
>> - Abstract EClass Baz
>> - EClass Foo
>> - has multi-valued containment reference 'bars' of type Bar
>> - has multi-valued containment reference 'biffs' of type Biff
>> - extends Baz
>> - EClass Bar
>> - extends Baz
>> - has single-valued NON-containment reference 'baz' of type Baz
>> - EClass Biff
>> - extends Baz
>>
>>
>> And the process that causes the exception is:
>> (1) Create 'foo' on the server, and save it to the DB using
>> session.save(foo);
>> (2) Send 'foo' to the client.
>> (3) Add new Bar 'bar' to foo.bars on the client.
>> (4) Add new Biff 'biff' to foo.biffs on the client.
>> (4) Call bar.setBaz(biff) on the client
>> (5) Send 'foo' back to the server (along with 'bar', via containment).
>> (6) Update foo in the DB by calling session.merge(foo)
>>
>> The problem, as far as I can tell, is on the 'baz' field of Bar, which
>> is filled by an object of type Biff.
>>
>> daniel
>>
>> Daniel Tuohy wrote:
>>> The reference has elements of type Bar.
>>>
>>> Martin Taal wrote:
>>>> Hi Daniel,
>>>> To be sure the containment reference of Foo.bars has elements of
>>>> type Bar or type Baz?
>>>>
>>>> btw, as support is given on the main emf newsgroup, I have added it
>>>> as a cc.
>>>>
>>>> gr. Martin
>>>>
>>>> Daniel Tuohy wrote:
>>>>> Hello,
>>>>>
>>>>> I've encountered a strange error when trying to update a teneo
>>>>> hibernated object using Session.merge(). I am using Teneo 1.0.1,
>>>>> but would be open to upgrading if it would help.
>>>>>
>>>>> Take the following model:
>>>>>
>>>>> - Abstract EClass Baz
>>>>> - EClass Foo
>>>>> - has multi-valued containment reference 'bars' of type Bar
>>>>> - extends Baz
>>>>> - EClass Bar
>>>>> - extends Baz
>>>>>
>>>>> When I do the following:
>>>>>
>>>>> (1) Create 'foo' on the server, and save it to the DB using
>>>>> session.save(foo);
>>>>> (2) Send 'foo' to the client.
>>>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>>>> (5) Update foo in the DB by calling session.merge(foo)
>>>>>
>>>>> I get the following exception:
>>>>>
>>>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>>>> classifier
>>>>> at
>>>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>>>
>>>>> at
>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>>>
>>>>> at
>>>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>>>
>>>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>>>> at
>>>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>>>>
>>>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>>>> at
>>>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>>>
>>>>>
>>>>> The exception seems to occur when processing the new reference to
>>>>> 'bar', and the fact that the reference is multi-valued and
>>>>> containment appears to be important.
>>>>>
>>>>> Any idea where I might be going wrong?
>>>>>
>>>>> Thanks,
>>>>> Daniel
>>>>
>>>>
>
>
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620921 is a reply to message #135962] |
Wed, 06 May 2009 11:07 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
To be sure the containment reference of Foo.bars has elements of type Bar or type Baz?
btw, as support is given on the main emf newsgroup, I have added it as a cc.
gr. Martin
Daniel Tuohy wrote:
> Hello,
>
> I've encountered a strange error when trying to update a teneo
> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
> would be open to upgrading if it would help.
>
> Take the following model:
>
> - Abstract EClass Baz
> - EClass Foo
> - has multi-valued containment reference 'bars' of type Bar
> - extends Baz
> - EClass Bar
> - extends Baz
>
> When I do the following:
>
> (1) Create 'foo' on the server, and save it to the DB using
> session.save(foo);
> (2) Send 'foo' to the client.
> (3) Add new Bar 'bar' to foo.bars on the client.
> (4) Send 'foo' back to the server (along with 'bar', via containment).
> (5) Update foo in the DB by calling session.merge(foo)
>
> I get the following exception:
>
> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
> classifier
> at
> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>
> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
> at
> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>
> at
> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>
> at org.hibernate.type.EntityType.replace(EntityType.java:278)
> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
> at
> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>
> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
> at
> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
> at
> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
> at
> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>
> at
> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>
> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
> at
> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>
>
> The exception seems to occur when processing the new reference to 'bar',
> and the fact that the reference is multi-valued and containment appears
> to be important.
>
> Any idea where I might be going wrong?
>
> Thanks,
> Daniel
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620924 is a reply to message #135986] |
Wed, 06 May 2009 16:18 |
Daniel Tuohy Messages: 41 Registered: July 2009 |
Member |
|
|
The reference has elements of type Bar.
Martin Taal wrote:
> Hi Daniel,
> To be sure the containment reference of Foo.bars has elements of type
> Bar or type Baz?
>
> btw, as support is given on the main emf newsgroup, I have added it as a
> cc.
>
> gr. Martin
>
> Daniel Tuohy wrote:
>> Hello,
>>
>> I've encountered a strange error when trying to update a teneo
>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>> would be open to upgrading if it would help.
>>
>> Take the following model:
>>
>> - Abstract EClass Baz
>> - EClass Foo
>> - has multi-valued containment reference 'bars' of type Bar
>> - extends Baz
>> - EClass Bar
>> - extends Baz
>>
>> When I do the following:
>>
>> (1) Create 'foo' on the server, and save it to the DB using
>> session.save(foo);
>> (2) Send 'foo' to the client.
>> (3) Add new Bar 'bar' to foo.bars on the client.
>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>> (5) Update foo in the DB by calling session.merge(foo)
>>
>> I get the following exception:
>>
>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>> classifier
>> at
>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>
>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>> at
>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>
>> at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>
>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>
>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>> at
>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>> at
>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>
>> at
>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>
>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>> at
>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>
>>
>> The exception seems to occur when processing the new reference to
>> 'bar', and the fact that the reference is multi-valued and containment
>> appears to be important.
>>
>> Any idea where I might be going wrong?
>>
>> Thanks,
>> Daniel
>
>
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620925 is a reply to message #136029] |
Wed, 06 May 2009 17:15 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
Looking at the stack trace it fails when traversing a many-to-one association. Is there a ismany=false association to
Baz in your model?
gr. Martin
Daniel Tuohy wrote:
> The reference has elements of type Bar.
>
> Martin Taal wrote:
>> Hi Daniel,
>> To be sure the containment reference of Foo.bars has elements of type
>> Bar or type Baz?
>>
>> btw, as support is given on the main emf newsgroup, I have added it as
>> a cc.
>>
>> gr. Martin
>>
>> Daniel Tuohy wrote:
>>> Hello,
>>>
>>> I've encountered a strange error when trying to update a teneo
>>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>>> would be open to upgrading if it would help.
>>>
>>> Take the following model:
>>>
>>> - Abstract EClass Baz
>>> - EClass Foo
>>> - has multi-valued containment reference 'bars' of type Bar
>>> - extends Baz
>>> - EClass Bar
>>> - extends Baz
>>>
>>> When I do the following:
>>>
>>> (1) Create 'foo' on the server, and save it to the DB using
>>> session.save(foo);
>>> (2) Send 'foo' to the client.
>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>> (5) Update foo in the DB by calling session.merge(foo)
>>>
>>> I get the following exception:
>>>
>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>> classifier
>>> at
>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>
>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>> at
>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>
>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>> at
>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at
>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>> at
>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>
>>>
>>> The exception seems to occur when processing the new reference to
>>> 'bar', and the fact that the reference is multi-valued and
>>> containment appears to be important.
>>>
>>> Any idea where I might be going wrong?
>>>
>>> Thanks,
>>> Daniel
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620926 is a reply to message #136029] |
Wed, 06 May 2009 17:27 |
Daniel Tuohy Messages: 41 Registered: July 2009 |
Member |
|
|
Actually, scratch that! There was a layer of indirection that I had
forgotten about. The reference that is causing the trouble is, as you
suggest, of the abstract type 'Baz'.
So, with corrections, the actual model is:
- Abstract EClass Baz
- EClass Foo
- has multi-valued containment reference 'bars' of type Bar
- has multi-valued containment reference 'biffs' of type Biff
- extends Baz
- EClass Bar
- extends Baz
- has single-valued NON-containment reference 'baz' of type Baz
- EClass Biff
- extends Baz
And the process that causes the exception is:
(1) Create 'foo' on the server, and save it to the DB using
session.save(foo);
(2) Send 'foo' to the client.
(3) Add new Bar 'bar' to foo.bars on the client.
(4) Add new Biff 'biff' to foo.biffs on the client.
(4) Call bar.setBaz(biff) on the client
(5) Send 'foo' back to the server (along with 'bar', via containment).
(6) Update foo in the DB by calling session.merge(foo)
The problem, as far as I can tell, is on the 'baz' field of Bar, which
is filled by an object of type Biff.
daniel
Daniel Tuohy wrote:
> The reference has elements of type Bar.
>
> Martin Taal wrote:
>> Hi Daniel,
>> To be sure the containment reference of Foo.bars has elements of type
>> Bar or type Baz?
>>
>> btw, as support is given on the main emf newsgroup, I have added it as
>> a cc.
>>
>> gr. Martin
>>
>> Daniel Tuohy wrote:
>>> Hello,
>>>
>>> I've encountered a strange error when trying to update a teneo
>>> hibernated object using Session.merge(). I am using Teneo 1.0.1, but
>>> would be open to upgrading if it would help.
>>>
>>> Take the following model:
>>>
>>> - Abstract EClass Baz
>>> - EClass Foo
>>> - has multi-valued containment reference 'bars' of type Bar
>>> - extends Baz
>>> - EClass Bar
>>> - extends Baz
>>>
>>> When I do the following:
>>>
>>> (1) Create 'foo' on the server, and save it to the DB using
>>> session.save(foo);
>>> (2) Send 'foo' to the client.
>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>> (5) Update foo in the DB by calling session.merge(foo)
>>>
>>> I get the following exception:
>>>
>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>> classifier
>>> at
>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>
>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>> at
>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>
>>> at
>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>
>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>> at
>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at
>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>
>>> at
>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>
>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>> at
>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>
>>>
>>> The exception seems to occur when processing the new reference to
>>> 'bar', and the fact that the reference is multi-valued and
>>> containment appears to be important.
>>>
>>> Any idea where I might be going wrong?
>>>
>>> Thanks,
>>> Daniel
>>
>>
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620927 is a reply to message #136054] |
Wed, 06 May 2009 17:42 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Daniel,
Can you file a bugzilla for this one? It would be great if you can attach a small test model to it also...
gr. Martin
Daniel Tuohy wrote:
> Actually, scratch that! There was a layer of indirection that I had
> forgotten about. The reference that is causing the trouble is, as you
> suggest, of the abstract type 'Baz'.
>
> So, with corrections, the actual model is:
> - Abstract EClass Baz
> - EClass Foo
> - has multi-valued containment reference 'bars' of type Bar
> - has multi-valued containment reference 'biffs' of type Biff
> - extends Baz
> - EClass Bar
> - extends Baz
> - has single-valued NON-containment reference 'baz' of type Baz
> - EClass Biff
> - extends Baz
>
>
> And the process that causes the exception is:
> (1) Create 'foo' on the server, and save it to the DB using
> session.save(foo);
> (2) Send 'foo' to the client.
> (3) Add new Bar 'bar' to foo.bars on the client.
> (4) Add new Biff 'biff' to foo.biffs on the client.
> (4) Call bar.setBaz(biff) on the client
> (5) Send 'foo' back to the server (along with 'bar', via containment).
> (6) Update foo in the DB by calling session.merge(foo)
>
> The problem, as far as I can tell, is on the 'baz' field of Bar, which
> is filled by an object of type Biff.
>
> daniel
>
> Daniel Tuohy wrote:
>> The reference has elements of type Bar.
>>
>> Martin Taal wrote:
>>> Hi Daniel,
>>> To be sure the containment reference of Foo.bars has elements of type
>>> Bar or type Baz?
>>>
>>> btw, as support is given on the main emf newsgroup, I have added it
>>> as a cc.
>>>
>>> gr. Martin
>>>
>>> Daniel Tuohy wrote:
>>>> Hello,
>>>>
>>>> I've encountered a strange error when trying to update a teneo
>>>> hibernated object using Session.merge(). I am using Teneo 1.0.1,
>>>> but would be open to upgrading if it would help.
>>>>
>>>> Take the following model:
>>>>
>>>> - Abstract EClass Baz
>>>> - EClass Foo
>>>> - has multi-valued containment reference 'bars' of type Bar
>>>> - extends Baz
>>>> - EClass Bar
>>>> - extends Baz
>>>>
>>>> When I do the following:
>>>>
>>>> (1) Create 'foo' on the server, and save it to the DB using
>>>> session.save(foo);
>>>> (2) Send 'foo' to the client.
>>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>>> (5) Update foo in the DB by calling session.merge(foo)
>>>>
>>>> I get the following exception:
>>>>
>>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>>> classifier
>>>> at
>>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>>
>>>> at org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>>> at
>>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>>
>>>> at
>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>>
>>>> at
>>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>>
>>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>>
>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>>> at
>>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>>>
>>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>>>
>>>> at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>>> at
>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>>
>>>> at
>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>>
>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>>> at
>>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>>
>>>>
>>>> The exception seems to occur when processing the new reference to
>>>> 'bar', and the fact that the reference is multi-valued and
>>>> containment appears to be important.
>>>>
>>>> Any idea where I might be going wrong?
>>>>
>>>> Thanks,
>>>> Daniel
>>>
>>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Error on session.merge() - EMFInstantiator trying to create instance of abstract class? [message #620936 is a reply to message #136062] |
Mon, 11 May 2009 17:21 |
Daniel Tuohy Messages: 41 Registered: July 2009 |
Member |
|
|
Just for anyone who encounters this thread in the future, the Bugzilla
can be found at:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=275208
I believe there is enough information there to replicate, but if not
I'll certainly try to correct that.
Daniel
Martin Taal wrote:
> Hi Daniel,
> Can you file a bugzilla for this one? It would be great if you can
> attach a small test model to it also...
>
> gr. Martin
>
> Daniel Tuohy wrote:
>> Actually, scratch that! There was a layer of indirection that I had
>> forgotten about. The reference that is causing the trouble is, as you
>> suggest, of the abstract type 'Baz'.
>>
>> So, with corrections, the actual model is:
>> - Abstract EClass Baz
>> - EClass Foo
>> - has multi-valued containment reference 'bars' of type Bar
>> - has multi-valued containment reference 'biffs' of type Biff
>> - extends Baz
>> - EClass Bar
>> - extends Baz
>> - has single-valued NON-containment reference 'baz' of type Baz
>> - EClass Biff
>> - extends Baz
>>
>>
>> And the process that causes the exception is:
>> (1) Create 'foo' on the server, and save it to the DB using
>> session.save(foo);
>> (2) Send 'foo' to the client.
>> (3) Add new Bar 'bar' to foo.bars on the client.
>> (4) Add new Biff 'biff' to foo.biffs on the client.
>> (4) Call bar.setBaz(biff) on the client
>> (5) Send 'foo' back to the server (along with 'bar', via containment).
>> (6) Update foo in the DB by calling session.merge(foo)
>>
>> The problem, as far as I can tell, is on the 'baz' field of Bar, which
>> is filled by an object of type Biff.
>>
>> daniel
>>
>> Daniel Tuohy wrote:
>>> The reference has elements of type Bar.
>>>
>>> Martin Taal wrote:
>>>> Hi Daniel,
>>>> To be sure the containment reference of Foo.bars has elements of
>>>> type Bar or type Baz?
>>>>
>>>> btw, as support is given on the main emf newsgroup, I have added it
>>>> as a cc.
>>>>
>>>> gr. Martin
>>>>
>>>> Daniel Tuohy wrote:
>>>>> Hello,
>>>>>
>>>>> I've encountered a strange error when trying to update a teneo
>>>>> hibernated object using Session.merge(). I am using Teneo 1.0.1,
>>>>> but would be open to upgrading if it would help.
>>>>>
>>>>> Take the following model:
>>>>>
>>>>> - Abstract EClass Baz
>>>>> - EClass Foo
>>>>> - has multi-valued containment reference 'bars' of type Bar
>>>>> - extends Baz
>>>>> - EClass Bar
>>>>> - extends Baz
>>>>>
>>>>> When I do the following:
>>>>>
>>>>> (1) Create 'foo' on the server, and save it to the DB using
>>>>> session.save(foo);
>>>>> (2) Send 'foo' to the client.
>>>>> (3) Add new Bar 'bar' to foo.bars on the client.
>>>>> (4) Send 'foo' back to the server (along with 'bar', via containment).
>>>>> (5) Update foo in the DB by calling session.merge(foo)
>>>>>
>>>>> I get the following exception:
>>>>>
>>>>> java.lang.IllegalArgumentException: The class 'Baz' is not a valid
>>>>> classifier
>>>>> at
>>>>> emf.com.stottlerhenke.adept.impl.AdeptFactoryImpl.create(Ade ptFactoryImpl.java:130)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.util.EcoreUtil.create(EcoreUtil.java:3 169)
>>>>> at
>>>>> org.eclipse.emf.teneo.hibernate.tuplizer.EMFInstantiator.ins tantiate(EMFInstantiator.java:85)
>>>>>
>>>>> at
>>>>> org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiat e(AbstractEntityTuplizer.java:374)
>>>>>
>>>>> at
>>>>> org.hibernate.persister.entity.AbstractEntityPersister.insta ntiate(AbstractEntityPersister.java:3634)
>>>>>
>>>>> at org.hibernate.type.EntityType.replace(EntityType.java:278)
>>>>> at org.hibernate.type.AbstractType.replace(AbstractType.java:17 7)
>>>>> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:538)
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.copyValues (DefaultMergeEventListener.java:429)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsTr ansient(DefaultMergeEventListener.java:231)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:170)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:71 4)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:696)
>>>>> at
>>>>> org.hibernate.engine.CascadingAction$6.cascade(CascadingActi on.java:268)
>>>>>
>>>>> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :239)
>>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeCollectionElements(Casca de.java:319)
>>>>>
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 265)
>>>>> at
>>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :242)
>>>>> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:19 2)
>>>>> at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.cascadeOnM erge(DefaultMergeEventListener.java:459)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.entityIsDe tached(DefaultMergeEventListener.java:318)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:167)
>>>>>
>>>>> at
>>>>> org.hibernate.event.def.DefaultMergeEventListener.onMerge(De faultMergeEventListener.java:81)
>>>>>
>>>>> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:70 4)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:688)
>>>>> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:692)
>>>>> at
>>>>> com.stottlerhenke.adept.server.DataModelServer.updateFoo(Dat aModelServer.java:443)
>>>>>
>>>>>
>>>>> The exception seems to occur when processing the new reference to
>>>>> 'bar', and the fact that the reference is multi-valued and
>>>>> containment appears to be important.
>>>>>
>>>>> Any idea where I might be going wrong?
>>>>>
>>>>> Thanks,
>>>>> Daniel
>>>>
>>>>
>
>
|
|
|
Goto Forum:
Current Time: Tue Sep 24 01:21:23 GMT 2024
Powered by FUDForum. Page generated in 0.04056 seconds
|