[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5473?page=c...
]
Kyrill Alyoshin commented on HHH-5473:
--------------------------------------
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.
Of all the things touched in 3.5.5 (according to the changelog) this issue seems to be the
only one dealing with merge functionality, so I decided to put a comment here. I will also
create a bug that described this in detail.
Default for CHECK_NULLABILITY does not allow merge retries
----------------------------------------------------------
Key: HHH-5473
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5473
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.5.4, 3.6.0.Beta1, 3.6.0.Beta2
Reporter: Gail Badner
Assignee: Gail Badner
Fix For: 3.5.5, 3.6.0.Beta3
The fix for HHH-3229 does not work in 3.5.4 when annotations is used or in 3.6.x because
nullified transient references are no longer checked because CHECK_NULLABILITY does not
default to true.
This is a temporary fix that restores the retry logic from HHH-3229. It only affects the
merge operation.
A more general fix that includes persist and save will be covered by HHH-5472.
--
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