[hibernate-dev] Regression after upgrade to 4.1.7.Final

Shawn Clowater shawn.clowater at Entero.com
Mon Sep 10 11:55:24 EDT 2012


Guillaume,

Are you using any type of nested sessions in your code?  Steve applied a
patch that I created that now properly triggers the before transaction
events in that case now (I had an issue with Search and it blowing an
exception around sealing queues w/o it).  This may be why you're now
seeing an issue in 4.1.7 and not 4.1.6.

I'm not looking at the latest code but in 4.1.4 it looks like the
getLoadedCollectionOwnerOrNull can blow a NPE if the CollectionEntry
wasn't found but a test case is worth a thousand words.

Shawn Clowater

-----Original Message-----
From: hibernate-dev-bounces at lists.jboss.org
[mailto:hibernate-dev-bounces at lists.jboss.org] On Behalf Of Steve
Ebersole
Sent: Monday, September 10, 2012 8:53 AM
To: Guillaume Smet
Cc: Hibernate
Subject: Re: [hibernate-dev] Regression after upgrade to 4.1.7.Final

We are going to need a test (ideally without Search) reproducing this.

On 09/10/2012 03:28 AM, Guillaume Smet wrote:
> Hi,
>
> We just upgraded to Hibernate 4.1.7.Final (from 4.1.6.Final) and we
> have a pretty bad regression with 4.1.7 and Hibernate Search 4.1.1.
>
> We have the following stack trace when saving an object:
> Caused by: org.hibernate.HibernateException: Error while indexing in
> Hibernate Search (before transaction completion)
> 	at
org.hibernate.search.backend.impl.EventSourceTransactionContext$Delegate
ToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTra
nsactionContext.java:186)
> 	at
org.hibernate.engine.spi.ActionQueue$BeforeTransactionCompletionProcessQ
ueue.beforeTransactionCompletion(ActionQueue.java:662)
> 	at
org.hibernate.engine.spi.ActionQueue.beforeTransactionCompletion(ActionQ
ueue.java:307)
> 	at
org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionIm
pl.java:607)
> 	at
org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTra
nsactionCommit(JdbcTransaction.java:105)
> 	at
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(Abst
ractTransactionImpl.java:175)
> 	at
org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:75)
> 	at
org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactio
nManager.java:512)
> 	... 47 more
> Caused by: java.lang.NullPointerException
> 	at
org.hibernate.engine.internal.StatefulPersistenceContext.getLoadedCollec
tionOwnerOrNull(StatefulPersistenceContext.java:851)
> 	at
org.hibernate.event.spi.AbstractCollectionEvent.getLoadedOwnerOrNull(Abs
tractCollectionEvent.java:75)
> 	at
org.hibernate.event.spi.InitializeCollectionEvent.<init>(InitializeColle
ctionEvent.java:36)
> 	at
org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java
:1799)
> 	at
org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(
AbstractPersistentCollection.java:524)
> 	at
org.hibernate.collection.internal.AbstractPersistentCollection.withTempo
rarySessionIfNeeded(AbstractPersistentCollection.java:212)
> 	at
org.hibernate.collection.internal.AbstractPersistentCollection.initializ
e(AbstractPersistentCollection.java:520)
> 	at
org.hibernate.collection.internal.AbstractPersistentCollection.read(Abst
ractPersistentCollection.java:125)
> 	at
org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.j
ava:266)
> 	at
org.hibernate.search.engine.spi.AbstractDocumentBuilder.appendContainedI
nWorkForInstance(AbstractDocumentBuilder.java:296)
> 	at
org.hibernate.search.engine.impl.WorkPlan$PerEntityWork.processContained
In(WorkPlan.java:525)
> 	at
org.hibernate.search.engine.impl.WorkPlan$PerClassWork.processContainedI
nAndPrepareExecution(WorkPlan.java:297)
> 	at
org.hibernate.search.engine.impl.WorkPlan.processContainedInAndPrepareEx
ecution(WorkPlan.java:144)
> 	at
org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan(WorkQueue.ja
va:135)
> 	at
org.hibernate.search.backend.impl.BatchedQueueingProcessor.prepareWorks(
BatchedQueueingProcessor.java:71)
> 	at
org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronizatio
n.beforeCompletion(PostTransactionWorkQueueSynchronization.java:86)
> 	at
org.hibernate.search.backend.impl.EventSourceTransactionContext$Delegate
ToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTra
nsactionContext.java:183)
> 	... 54 more
>
> I don't know if it's something obvious or if you need a self contained
> test case to reproduce it.
>
> I haven't created a JIRA because I don't know if it's an
> incompatibility between Hibernate Search 4.1.1 and Hibernate 4.1.7 or
> a real bug (either in HHH or HSEARCH).
>
> Feel free to ping me for more information or any further action.
>
> Thanks.
>


-- 
steve at hibernate.org
http://hibernate.org

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



More information about the hibernate-dev mailing list