[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2326) NullPointerException from merge on composite id

Daniel Badawi (JIRA) noreply at atlassian.com
Thu Sep 20 14:32:15 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_28143 ] 

Daniel Badawi commented on HHH-2326:
------------------------------------

Tyler Van Gorder,
I'm doing the same thing you are (composite id to another persistent classes, id generated and transient). And I'm getting exactly the same error.

Is there any workaround?


thanks!

> NullPointerException from merge on composite id
> -----------------------------------------------
>
>                 Key: HHH-2326
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2326
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.1
>         Environment: Hibernate 3.2.1ga, tested against Oracle 10g and Derby
>            Reporter: Greg Adams
>            Priority: Critical
>         Attachments: HibernateMergeBug.zip
>
>
> Merge is throwing an NPE from the bowels of Hibernate when I have a class mapped with a composite ID.
> Stacktrace:
> [junit] java.lang.NullPointerException
>     [junit] 	at org.hibernate.type.AbstractType.getHashCode(AbstractType.java:112)
>     [junit] 	at org.hibernate.type.AbstractType.getHashCode(AbstractType.java:120)
>     [junit] 	at org.hibernate.type.EntityType.getHashCode(EntityType.java:279)
>     [junit] 	at org.hibernate.type.ComponentType.getHashCode(ComponentType.java:189)
>     [junit] 	at org.hibernate.engine.EntityKey.generateHashCode(EntityKey.java:104)
>     [junit] 	at org.hibernate.engine.EntityKey.<init>(EntityKey.java:48)
>     [junit] 	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:100)
>     [junit] 	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:687)
>     [junit] 	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:669)
>     [junit] 	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:245)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
>     [junit] 	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
>     [junit] 	at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>     [junit] 	at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:437)
>     [junit] 	at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:194)
>     [junit] 	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:123)
>     [junit] 	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:53)
>     [junit] 	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:677)
>     [junit] 	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:661)
>     [junit] 	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:665)
>     [junit] 	at com.foo.test.HibernateTest.doMerge(Unknown Source)
>     [junit] 	at com.foo.test.HibernateTest.testInsert(Unknown Source)
>     [junit] 	at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
>     [junit] 	at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
>     [junit] 	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>     [junit] 	at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
>     [junit] 	at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
>     [junit] 	at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
>     [junit] 	at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
>     [junit] 	at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
>     [junit] 	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>     [junit] 	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
>     [junit] 	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:32)
> I've attached a zipped-up project that reproduces the error. Just extract and run ant.

-- 
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