Looks good. I added a few minor comments. I'd like to see the Map sizing thing addressed and the 4.0 port done, but I have no problems with these changes.
On Fri 08 Jul 2011 07:32:25 AM CDT, Adam Warski wrote: > As Eric wrote this fix is needed to fix an Envers issue (HHH-6349), however I > don't feel competent to review the patch for hibernate-core. > So maybe someone else could try? :) > > Thanks, > Adam > > On Jul 4, 2011, at 3:20 PM, Scheper, Erik-Berndt wrote: > >> Hi, >> I'd like someone to review my proposed fix of HHH-6361 >> (https://github.com/hibernate/hibernate-core/pull/117) for the 3.6 branch. >> >>> From a Hibernate core perspective, this may seem like a minor issue, but >>> it is the cause of HHH-6349, where Envers forever loses the audit >>> information when objects were added to or removed from a collection. Since >>> there is no way to retrieve this information from the database at a later >>> moment, this is really bad from the Envers (auditing) perspective. >> >> The proposed fix causes both the provided testcase for HHH-6361 (the >> Hibernate core issue) and the testcase for HHH-6349 (the Envers issue) to >> pass by ensuring that after a merge() operation the snapshot value of the >> collection, as obtained by collectionEntry.getSnapshot(), corresponds with >> the database contents. This is a good thing, of course. >> >> However, apart from the possible performance implication (though I'm not >> sure if there's a remedy for this), I am a bit worried about the fact that I >> had to fix a unit test in the Hibernate testsuite >> (org.hibernate.test.manytomanyassociationclass.compositeid.ManyToManyAssociationClassCompositeIdTest) >> to make the 3.6 build succeed. As a rule, that's a bad sign. >> >> What happens is that after the patch this test crashes with an NPE in the >> hashCode() method of MembershipWithCompositeId.Id class. The reason of the >> NPE is that MembershipWithCompositeId now has a non-null "Id" property, with >> a null value of the userId and groupId properties. Even though it was easy >> to fix the test by overriding the deleteMembership()-method in >> ManyToManyAssociationClassCompositeIdTest by setting the "Id" property of >> MembershipWithCompositeId to null, this doesn't feel good to me. >> >> I'd really like to see a fix for HHH-6361 without these changes in >> ManyToManyAssociationClassCompositeIdTest, but I couldn't find one. Any help >> there would be appreciated of course. >> >> After an initial review, I'd be more than happy to provide a fix for the >> Hibernate 4.0.x series, which is also plagued by the same bug. >> >> Regards, >> Erik-Berndt >> >> Disclaimer: >> This message contains information that may be privileged or confidential and >> is the property of Sogeti Nederland B.V. or its Group members. It is >> intended only for the person to whom it is addressed. If you are not the >> intended recipient, you are not authorized to read, print, retain, copy, >> disseminate, distribute, or use this message or any part thereof. If you >> receive this message in error, please notify the sender immediately and >> delete all copies of this message. >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev -- st...@hibernate.org http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev