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

-- 
Adam Warski

http://twitter.com/#!/adamwarski
http://www.warski.org
http://www.softwaremill.eu







_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to