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(a)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(a)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(a)gmail.com>:
>>
>> Hello,
>> I can look into this on friday 26, is that a good time?
>>
>> Sanne
>>
>> 2009/6/24 Emmanuel Bernard <emmanuel(a)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>