[seam-dev] Re: Hibernate search 3.1.1.GA w/ seam

Sanne Grinovero sanne.grinovero at gmail.com
Sat Jun 27 11:45:46 EDT 2009


I've been stepping through the blog example with a debugger to look
into JBSEAM-4257;
the transaction is fine but it appears that it doesn't get to commit
after the method invocation.

If I convert the component to a @Stateful bean *and* change the "@In
FullTextEntityManager" into
a "@PersistenceContext EntityManager" it does work: the transaction is
committed and the test
succeeds.
If I only convert the pojo into a Stateful bean and keep using "@In"
to inject entitymanager, it doesn't
inject and the method is called having null EntityManager -> NPE.

The dvdstore example is not affected by this, as the indexer
implementation of dvdstore
is using a @Stateful bean and @PersistenceContext already.

The problem is the @Create annotated method combined with @Startup and
@Scope(ScopeType.APPLICATION):
if I remove @Startup and have the method called before the first
search (I experimented having it injected with create=true in the
search
service) the behaviour is correct: the transaction is committed, the
index is updated and the search results are fine.

I've opened JBSEAM-4278 for this; should I open a second one for the
missing injections in EJB3 stateful beans?
I'm not sure if it the same issue, I mentioned it in the description.

Sanne


2009/6/26 Emmanuel Bernard <emmanuel at hibernate.org>:
> That's a problem. We need to understand why no tx is enlisted from an
> hibernate pov. Looks like a config bug or something more severe on the
> hibernate side.
>
> On 26 juin 2009, at 01:09, Sanne Grinovero <sanne.grinovero at gmail.com>
> wrote:
>
>> Hi Norman, Emmanuel,
>> I think it was working for Norman in JBoss because it somehow used the
>> existing index, as the blog example was not doing cleanup;
>> removing the index I verified it behaves the same when deployed or with
>> testNG.
>>
>> I've attached a patch here to remove existing data from the index at
>> startup (purgeAll) and making sure the new data
>> is flushed to the index (entityManager.flushToIndexes();).
>>
>> This makes the test succeed, but I'm unsure about this being the
>> proper fix. Emmanuel, WDYT? I was not expecting
>> to have the flushToIndexes being mandatory... it appears there is no
>> transaction committed by Seam?
>> The dvdstore is using a similar indexing routine, and it appears to be
>> working fine even withouth the flush.
>>
>> greetings,
>> Sanne
>>
>>
>> 2009/6/24 Sanne Grinovero <sanne.grinovero at gmail.com>:
>>>
>>> Hello,
>>> I can look into this on friday 26, is that a good time?
>>>
>>> Sanne
>>>
>>> 2009/6/24 Emmanuel Bernard <emmanuel at hibernate.org>:
>>>>
>>>> My machine crashed yesterday so I won't be able to look into that.
>>>> Sanne probably can help as he has done the latest Hibernate migration in
>>>> Seam.
>>>> Or maybe Hardy.
>>>>
>>>> Emmanuel
>>>>
>>>> On  Jun 23, 2009, at 06:57, Emmanuel Bernard wrote:
>>>>
>>>>> Damn I'm on the road this week.
>>>>> Can you give me the SVN url for me to reproduce?
>>>>>
>>>>> That must be a dump thing.
>>>>>
>>>>> On  Jun 23, 2009, at 02:59, Norman Richards wrote:
>>>>>
>>>>>> We've upgraded Hibernate search for Seam 2.2, but we're getting one
>>>>>> small
>>>>>> issue with it when running unit tests with the blog example:
>>>>>>
>>>>>> https://jira.jboss.org/jira/browse/JBSEAM-4257
>>>>>>
>>>>>> I tracked it down to being an issue with the index directory not
>>>>>> getting
>>>>>> correctly populated.  If I copy the index directory from the blog
>>>>>> example
>>>>>> running in jboss, everything works fine.  Any ideas why the index
>>>>>> wouldn't
>>>>>> be created correctly?
>>>>>>
>>>>>> Specifically, what is created during unit tests is:
>>>>>>
>>>>>> $ ls -al domain.BlogEntry/
>>>>>> total 16
>>>>>> drwxr-xr-x  4 orb  staff  136 Jun 22 19:19 .
>>>>>> drwxr-xr-x  3 orb  staff  102 Jun 22 19:19 ..
>>>>>> -rw-r--r--  1 orb  staff   20 Jun 22 19:19 segments.gen
>>>>>> -rw-r--r--  1 orb  staff   28 Jun 22 19:19 segments_1
>>>>>>
>>>>>>
>>>>>> whereas when running in AS, I get:
>>>>>>
>>>>>> burrito:blogindexes orb$ ls -al domain.BlogEntry
>>>>>> total 168
>>>>>> drwxr-xr-x  19 orb   staff   646 Jun  9 14:32 .
>>>>>> drwxr-xr-x   3 orb   staff   102 Jun  3 15:19 ..
>>>>>> -rw-r--r--   1 root  staff  6027 Jun  9 13:15 _2s.cfs
>>>>>> -rw-r--r--   1 root  staff     9 Jun  9 13:52 _2s_3.del
>>>>>> -rw-r--r--   1 root  staff  4818 Jun  9 13:15 _2t.cfs
>>>>>> -rw-r--r--   1 root  staff     9 Jun  9 13:52 _2t_1.del
>>>>>> -rw-r--r--   1 root  staff  1121 Jun  9 13:15 _2u.cfs
>>>>>> -rw-r--r--   1 root  staff     9 Jun  9 13:52 _2u_1.del
>>>>>> -rw-r--r--   1 root  staff   976 Jun  9 13:52 _2v.cfs
>>>>>> -rw-r--r--   1 orb   staff     9 Jun  9 14:32 _2v_1.del
>>>>>> -rw-r--r--   1 root  staff  4818 Jun  9 13:52 _2w.cfs
>>>>>> -rw-r--r--   1 orb   staff     9 Jun  9 14:32 _2w_1.del
>>>>>> -rw-r--r--   1 root  staff  1121 Jun  9 13:52 _2x.cfs
>>>>>> -rw-r--r--   1 orb   staff     9 Jun  9 14:32 _2x_1.del
>>>>>> -rw-r--r--   1 orb   staff   976 Jun  9 14:32 _2y.cfs
>>>>>> -rw-r--r--   1 orb   staff  4818 Jun  9 14:32 _2z.cfs
>>>>>> -rw-r--r--   1 orb   staff  1121 Jun  9 14:32 _30.cfs
>>>>>> -rw-r--r--   1 orb   staff    20 Jun  9 14:32 segments.gen
>>>>>> -rw-r--r--   1 orb   staff   254 Jun  9 14:32 segments_8r
>>>>>>
>>>>>> If you can even give me some idea what code to look at, it would be a
>>>>>> great help.  Thanks.
>>>>>>
>>>>>
>>>>
>>>>
>>>
>> <examples-blog.diff>
>




More information about the seam-dev mailing list