@OneToMany NPE at ListCollectionInitializor.addToCollection : 73
ron.piterman Jul 6, 2010 9:18 AMHi,
I am evaluating Envers and have a test settings:
@Entity @Audited public class AudChild { @Id @GeneratedValue private Long id; @ManyToOne(optional=false,cascade=CascadeType.ALL) @JoinColumn private AudParent parent; private String name; ... } @Entity @Audited public class AudParent { @Id @GeneratedValue private Long id; private String name; @Audited(modStore=ModificationStore.FULL,targetAuditMode=RelationTargetAuditMode.AUDITED) @OneToMany(mappedBy="parent",cascade=CascadeType.ALL) @OrderColumn(name="index") private List<AudChild> children = new ArrayList<AudChild>(); ... }
In my test I have the following code:
AudParent p = new AudParent("p1"); AudChild c = new AudChild(p, "c1"); entityManager.persist( c ); p.getChildren().add( c ); entityManager.persist( p ); end(); // end tx begin(); // begin new tx AudParent same = entityManager.find( AudParent.class, p.getId() ); Assert.assertNotNull( same ); Assert.assertTrue( same.getChildren().size() == 1 ); Number rev = getAuditReader().getRevisionNumberForDate( new Date() ); Assert.assertNotNull( rev ); AudParent versioned = getAuditReader().find( AudParent.class, p.getId(), rev ); Assert.assertNotNull( versioned ); Assert.assertEquals( versioned.getName(), "p1" ); Assert.assertTrue( versioned.getChildren().size() == 1 ); // Exception here end();
And on the last assert I get an exception:
java.lang.NullPointerException at org.hibernate.envers.entities.mapper.relation.lazy.initializor.ListCollectionInitializor.addToCollection(ListCollectionInitializor.java:73) at org.hibernate.envers.entities.mapper.relation.lazy.initializor.ListCollectionInitializor.addToCollection(ListCollectionInitializor.java:39) at org.hibernate.envers.entities.mapper.relation.lazy.initializor.AbstractCollectionInitializor.initialize(AbstractCollectionInitializor.java:67) at org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy.checkInit(CollectionProxy.java:50) at org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy.size(CollectionProxy.java:55) at hibtest.envers.EnversTest.persistAndChange(EnversTest.java:43)
Can anyone point me to what am I doing wrong here?
Attached is a maven project which includes the test. Extract and enter "mvn install"...
Thanx in advance, Ron
-
envtest.tgz 3.4 KB