[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6960) NullPointerException in PreCollectionRemove Listener

Leon Pennings (JIRA) noreply at atlassian.com
Mon Feb 6 15:55:10 EST 2012


    [ https://hibernate.onjira.com/browse/HHH-6960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45381#comment-45381 ] 

Leon Pennings commented on HHH-6960:
------------------------------------

I ran into the same issue. It happened to me on nested objects, so where object A has a parentObject of type A too. Then on a delete of a random object (even without a parentObject) I had a collectionEntry object with all null fields.
Funny thing is this happened on am object that did not have the @Audited annotation, nor was it referenced in any way by an @Audited object

> NullPointerException in PreCollectionRemove Listener
> ----------------------------------------------------
>
>                 Key: HHH-6960
>                 URL: https://hibernate.onjira.com/browse/HHH-6960
>             Project: Hibernate ORM
>          Issue Type: Bug
>          Components: envers
>    Affects Versions: 4.0.0.Final
>         Environment: Hibernate 4.0.0 to MySQL
>            Reporter: Kevin Jordan
>            Assignee: Adam Warski
>
> I'm getting a NullPointerException on line 47 of EnversPreCollectionRemoveEventListenerImpl very consistently. I wasn't sure if it was due to lazy collections or not, but it seems that it fails if they're eagerly fetched or lazily fetched. I'm guessing it has something to do with getLoadedPersister() returning a null value since the comments for it say "This is only available late during the flush cycle". The stack trace is
> Quote:
> java.lang.NullPointerException
> at org.hibernate.envers.event.EnversPreCollectionRemoveEventListenerImpl.onPreRemoveCollection(EnversPreCollectionRemoveEventListenerImpl.java:47)
> at org.hibernate.action.internal.CollectionRemoveAction.preRemove(CollectionRemoveAction.java:143)
> at org.hibernate.action.internal.CollectionRemoveAction.execute(CollectionRemoveAction.java:104)
> at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:273)
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:265)
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:188)
> at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:323)
> at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081)
> at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315)
> at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
> at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
> at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:73)
> ... 120 more

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list