[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5534?page=c...
]
Kyrill Alyoshin commented on HHH-5534:
--------------------------------------
Oh, the entities are most certainly bi-directional. That's exactly what
ResearchClientFile#addRecord(ResearchRecord) does.
Also RandomUtils.getBean() populates the bean with random values for all basic data types.
I did test it on other entities as well. The issue is still there. I think it is important
to keep in mind that everything works in 3.5.4. The app has been deployed in production
for a few months now (on 3.5.2). So, things do work, they just break on 3.5.5. I believe
it should be very easy to reproduce.
Regression in 3.5.5: Cascade on merge for Sets fails with transient
entities
-----------------------------------------------------------------------------
Key: HHH-5534
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5534
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.5.5
Environment: Hibernate 3.5.5, Oracle 10g.
Reporter: Kyrill Alyoshin
Assignee: Gail Badner
Fix For: 3.5.6, 3.6.x
Something happened from 3.5.4 to 3.5.5. Here is regression issue we're experiencing
after upgrade:
We have entities ResearchClientFile and ResearchVendorRecord.
RCF maps RVR:
@Sort(type = SortType.NATURAL)
@OneToMany(mappedBy = "file", fetch = FetchType.LAZY, cascade =
CascadeType.ALL)
public SortedSet<ResearchVendorRecord> getRecords() {
return records;
}
RVR maps RCF:
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "research_client_file_id")
public ResearchClientFile getFile() {
return file;
}
The following unit test:
ResearchClientFile rcf = RandomUtils.randomBean(ResearchClientFile.class);
rcf.addRecord(RandomUtils.randomBean(ResearchVendorRecord.class));
rcf = session.merge(rcf);
produces the following exception in 3.5.5 but not in 3.5.4.:
java.lang.NullPointerException: null entities are not supported by
org.hibernate.event.def.EventCache
at org.hibernate.event.def.EventCache.containsKey(EventCache.java:80)
at
org.hibernate.event.def.DefaultMergeEventListener.mergeTransientEntity(DefaultMergeEventListener.java:361)
at
org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:303)
at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:258)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:869)
equals, hashCode and compareTo are completely consistent in RVR.
The issue seems to affects only Set and SortedSets and on merge only. Lists (with bag
semantics) do not appear to be affected on merge.
--
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira