Issue Type: Bug Bug
Affects Versions: 3.3.1
Assignee: Unassigned
Components: core
Created: 20/Sep/12 1:48 PM
Description:

@JoinTable(name = "JOIN_TABLE", joinColumns = { @JoinColumn(name = "JOIN_TABLE_ID", referencedColumnName = "ID") }, inverseJoinColumns = { @JoinColumn(name = "ENTITY_ID", referencedColumnName = "ID") })
@ManyToMany(fetch = FetchType.LAZY)
private Set<JoinTable> aProperty;

When fetching this entity, and after initialize, I get all the valid attribute values but the aProperty is defined as PersistenceCollection.

This collection is not intialized yet. When I initialize this collection as follow:

(PersistentCollection) entity).forceInitialization();

Or

Hibernate.initialize(entity);

I got NullPointerException:

Caused by: java.lang.NullPointerException
at org.hibernate.engine.internal.StatefulPersistenceContext.getLoadedCollectionOwnerOrNull(StatefulPersistenceContext.java:790)
at org.hibernate.event.spi.AbstractCollectionEvent.getLoadedOwnerOrNull(AbstractCollectionEvent.java:75)
at org.hibernate.event.spi.InitializeCollectionEvent.<init>(InitializeCollectionEvent.java:36)
at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1803)
at org.hibernate.collection.internal.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:489)
at org.hibernate.Hibernate.initialize(Hibernate.java:77)

When I check source code of class org.hibernate.engine.internal.StatefulPersistenceContext.getLoadedCollectionOwnerOrNull(StatefulPersistenceContext.java:790)

CollectionEntry ce = getCollectionEntry( collection );
790 if ( ce.getLoadedPersister() == null ) { 791 return null; // early exit... 792 }

Looks like the CollectionEntry ce is null. This collection entry is fetched from collectionEntries.get(coll);

// Identity map of CollectionEntry instances, by the collection wrapper
121 private IdentityMap<PersistentCollection, CollectionEntry> collectionEntries;

I checked Jboss docs, it mentioned the way to initilialize the collection is as I have done above.
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-fetching-initialization

For now, I have to set the fetchType to EAGER for my assetVersions which is not what I want to do due to performance impact.

Project: Hibernate ORM
Labels: core
Priority: Major Major
Reporter: Ricardo Martinelli de Oliveira
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira