[hibernate-issues] [Hibernate-JIRA] Updated: (EJB-235) [ClassCastException] problem with merge() for abstract entity
Antonel Pazargic (JIRA)
noreply at atlassian.com
Fri Oct 6 07:10:24 EDT 2006
[ http://opensource.atlassian.com/projects/hibernate/browse/EJB-235?page=all ]
Antonel Pazargic updated EJB-235:
---------------------------------
Attachment: ClassCastException.zip
There are two small eclipse application (client and server) in attached archive. It's really easy to find interesting code (classses) for the related bug report.
I hope that helps.
> [ClassCastException] problem with merge() for abstract entity
> -------------------------------------------------------------
>
> Key: EJB-235
> URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-235
> Project: Hibernate Entity Manager
> Type: Bug
> Components: EntityManager
> Versions: 3.2.0.cr2
> Environment: WinXP SP2, EJB3.0 Embeddable Server Alpha 9 and JBoss AS 4.0.4 GA, Java 1.5.0_09, PostgreSQL 8.1
> Reporter: Antonel Pazargic
> Attachments: ClassCastException.zip
>
>
> I have the following hierarchy of entities
> MedicalPersonnel (abstract class) (InheritanceType.JOINED)
> >--- Nurse (concret class)
> >--- Physician (concrett class)
> and relation
> MedicalPersonnel (OneToMany) MedicalDoc
> When I've tried
> MedicalPersonnel mp;
> /* get a persisted and detached instance of MedicalPersonnel and assign with mp */
> mp = em.merge(mp); //ClassCastException
> Error stack trace:
> Exception in thread "main" javax.ejb.EJBException: java.lang.ClassCastException: ro.iqbyte.arhimed.model.core.common.entities.adm.Nurse
> at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
> at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
> at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:227)
> at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
> at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
> at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
> at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
> at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
> at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:412)
> at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
> Caused by: java.lang.ClassCastException: ro.iqbyte.arhimed.model.core.common.entities.adm.Nurse
> at org.hibernate.type.LongType.set(LongType.java:42)
> at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
> at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:65)
> at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1514)
> at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1576)
> at org.hibernate.loader.Loader.doQuery(Loader.java:661)
> at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
> at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
> at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:85)
> at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1565)
> at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:365)
> at org.hibernate.type.EntityType.resolve(EntityType.java:306)
> at org.hibernate.type.EntityType.replace(EntityType.java:207)
> at org.hibernate.type.TypeFactory.replace(TypeFactory.java:431)
> at org.hibernate.event.def.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:282)
> at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:246)
> at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:99)
> at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:51)
> at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:679)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:663)
> at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:667)
> at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:201)
> at org.jboss.ejb3.entity.TransactionScopedEntityManager.merge(TransactionScopedEntityManager.java:181)
> at com.titan.services.TitanServiceBean.visitNurse(TitanServiceBean.java:122)
> at com.titan.services.TitanServiceBean.visitMedicalPersonnel(TitanServiceBean.java:116)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
> at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
> at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
> at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:227)
> at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
> at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
> at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
> at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
> at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
> at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:412)
> at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
> at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:190)
> at org.jboss.remoting.Client.invoke(Client.java:525)
> at org.jboss.remoting.Client.invoke(Client.java:488)
> at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:41)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
> at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:46)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
> at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:40)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
> at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:78)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
> at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
> at $Proxy0.visitMedicalPersonnel(Unknown Source)
> at ro.iqbyte.arhimed.model.teste.Main.visitMedicalPersonnel(Main.java:196)
> at ro.iqbyte.arhimed.model.teste.Main.main(Main.java:71)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list