Hibernate Search, LazyInitializationException e teste funcional

Olá, estou com o seguinte problema. Tenho uma entidade chamada Person e ela tem uma lista de AcademicHistoryItem, este OneToMany está configurado como Lazy,
fiz este mapeamento, pois estou usando Hibernate Search e precisava procurar por Person através de palavras chave referentes a AcademicHistoryItem,

por exemplo, “Ciência da Computação”, “Graduação”, “Mestrado”, etc.

Não quero e não preciso usar Eager nesta relação.

O Hibernate Search indexa corretamente e tudo funciona bem no sistema. O probleam está nos testes funcionais que eu tenho, são vários.

Os testes funcionais que estão dando problema tem a seguinte estrutura:

@Test
public void testAlgumTeste() {

gerarDados(); // massa de dados para fazer o  teste
[color=red]endTransaction();[/color]
// fazer login
// faz o teste

}

Antes de executar qualquer teste, um navegador é aberto para executar as instruções do teste (uso Selenium para gerar o código). Porém, para que o navegador seja capaz de ver os dados gerados em gerarDados() é necessário encerrar a transação e isto só acontece quando o teste termina OU eu faço um endTransaction() dentro dele.

Em algum momento da execução de [color=red]endTransaction();[/color], o Hibernate Search tenta reindexar Person e para isso ele faz um person.getAcademicHistoryItem() e aí eu recebo uma exceção (que está no fim do texto).

É possível fazer alguma configuração, tal que quando person.getAcademicHistoryItem() for executado, independente de estar dentro da sessão ou não, a coleção seja carregada?

org.springframework.orm.hibernate3.HibernateSystemException: Error while indexing in Hibernate Search (before transaction completion); nested exception is org.hibernate.HibernateException: Error while indexing in Hibernate Search (before transaction completion)
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:676)
at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:789)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
at org.springframework.test.AbstractTransactionalSpringContextTests.endTransaction(AbstractTransactionalSpringContextTests.java:355)
at functional.showColleagues.SearchByCourseTest.initializeData(SearchByCourseTest.java:607)
at functional.showColleagues.SearchByCourseTest.testGetPersonByTagCourse_cienciaDaComputacao2000(SearchByCourseTest.java:94)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.hibernate.HibernateException: Error while indexing in Hibernate Search (before transaction completion)
at org.hibernate.search.backend.impl.EventSourceTransactionContext$DelegateToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTransactionContext.java:162)
at org.hibernate.engine.ActionQueue$BeforeTransactionCompletionProcessQueue.beforeTransactionCompletion(ActionQueue.java:530)
at org.hibernate.engine.ActionQueue.beforeTransactionCompletion(ActionQueue.java:211)
at org.hibernate.impl.SessionImpl.beforeTransactionCompletion(SessionImpl.java:563)
at org.hibernate.jdbc.JDBCContext.beforeTransactionCompletion(JDBCContext.java:229)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:142)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
… 25 more
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.ujima.alumni.model.roles.Person.academicHistoryItens, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:272)
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.buildDocumentFields(DocumentBuilderIndexedEntity.java:470)
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.getDocument(DocumentBuilderIndexedEntity.java:414)
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.createAddWork(DocumentBuilderIndexedEntity.java:364)
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.addWorkToQueue(DocumentBuilderIndexedEntity.java:348)
at org.hibernate.search.engine.DocumentBuilderContainedEntity.addWorkForEmbeddedValue(DocumentBuilderContainedEntity.java:738)
at org.hibernate.search.engine.DocumentBuilderContainedEntity.processSingleContainedInInstance(DocumentBuilderContainedEntity.java:721)
at org.hibernate.search.engine.DocumentBuilderContainedEntity.processContainedInInstances(DocumentBuilderContainedEntity.java:676)
at org.hibernate.search.engine.DocumentBuilderContainedEntity.addWorkToQueue(DocumentBuilderContainedEntity.java:624)
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.addWorkToQueue(DocumentBuilderIndexedEntity.java:359)
at org.hibernate.search.backend.impl.BatchedQueueingProcessor.addWorkToBuilderQueue(BatchedQueueingProcessor.java:264)
at org.hibernate.search.backend.impl.BatchedQueueingProcessor.processWorkByLayer(BatchedQueueingProcessor.java:251)
at org.hibernate.search.backend.impl.BatchedQueueingProcessor.prepareWorks(BatchedQueueingProcessor.java:149)
at org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization.beforeCompletion(PostTransactionWorkQueueSynchronization.java:85)
at org.hibernate.search.backend.impl.EventSourceTransactionContext$DelegateToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTransactionContext.java:159)
… 31 more

Estou com um problema relacionado a este assunto,

Estou pesquisando em todos os lugares possíveis, já acionei 4 amigos especialistas em java, certificados e tudo mais.
Lancei perguntas em forum, baixei o manual do Hibernate Search, estou pirando aqui e ninguém tem idéia de como resolver.
Só preciso fazer o reload do arquivo de sinônimos (synonimus.txt) depois dele ser alterado (em ambiente de produção, sem precisar reiniciar o servidor).

Alguém tem alguma referência, alguem que eu possa ligar, uma idéia de como fazer isso?