Hi all,
My application, which uses JBoss Seam, Hibernate and Hibernate Search (updated to latest version) regularly throws a NullPointerException in Hibernate Search's WorkQueue. The full stack trace is the following:
java.lang.NullPointerException
at org.hibernate.search.backend.WorkQueue.add(WorkQueue.java:31)
at org.hibernate.search.backend.impl.BatchedQueueingProcessor.add(BatchedQueueingProcessor.java:108)
at org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization.add(PostTransactionWorkQueueSynchronization.java:32)
at org.hibernate.search.backend.impl.TransactionalWorker.performWork(TransactionalWorker.java:42)
at org.hibernate.search.event.FullTextIndexEventListener.processWork(FullTextIndexEventListener.java:108)
at org.hibernate.search.event.FullTextIndexEventListener.onPostInsert(FullTextIndexEventListener.java:89)
at org.hibernate.action.EntityInsertAction.postInsert(EntityInsertAction.java:149)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:128)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:304)
at org.jboss.seam.persistence.EntityManagerProxy.flush(EntityManagerProxy.java:92)
at org.hibernate.search.jpa.impl.FullTextEntityManagerImpl.flush(FullTextEntityManagerImpl.java:113)
at org.jboss.seam.persistence.EntityManagerProxy.flush(EntityManagerProxy.java:92)
I searched on the net but to no result. I also did a lot of debugging and there is nothing really unusual. The line where the NullPointerException occurs is when adding a "Work" object to the queue. The Work object is created by the FullTextIndexEventListener and I see no real reason why and how it could be "null". I suspect that it might either have to do with some kind of concurrent access (but I don't have concurrent access to the entity manager, at least not explicitly), or maybe the work queue is processed twice.
Do you have any ideas or did you also encounter the problem?
Greetings,
Sebastian
|