Bugs item #573199, was opened at 2002-06-24 16:35
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=573199&group_id=22866
Category: JBossServer
Group: v3.0 Rabbit Hole
Status: Closed
Resolution: Out of Date
Priority: 5
Submitted By: Daniel OConnor (docodan)
Assigned to: Dain Sundstrom (dsundstrom)
Summary: BMP beans: ejbStore not called post find
Initial Comment:
If a BMP bean executes a finder method, the container
will first call ejbStores to synch beans with the
datastore as necessary (per the EJB spec). However, if
this happens, an ejbStore will not then be called at the
end of transaction (in violation of the spec).
The simple test case attached is a bmp bean called by
a client. The ejbStore method just writes out the data to
System.out, so no configuration of data sources is
necessary to run this. The final value of the variable (10)
is never written to System.out.
Note that this bug was introduced in the 3.x series. It is
not present as of JBoss 2.4.4.
A first glance at the source code from the nightly
snapshot suggests that GlobalTxEntityMap might be
the culprit, where:
public void syncEntities(Transaction tx)
throws TransactionRolledbackException
{
Collection entities = null;
synchronized (m_map)
{
entities = (Collection)m_map.remove(tx);
}
removes the entities from the map whenever a synch is
called. But I did not investigate this after my first
impression.
----------------------------------------------------------------------
>Comment By: David Jencks (d_jencks)
Date: 2002-06-24 18:14
Message:
Logged In: YES
user_id=60525
Perhaps the code could use some cleanup and method renaming,
but all that happens when register is called multiple times
is the ctx is put into the global tx entity map. It doesn't
register more synchs on the same tx as far as I can see.
----------------------------------------------------------------------
Comment By: Bill Burke (patriot1burke)
Date: 2002-06-24 17:49
Message:
Logged In: YES
user_id=176497
Dain, that code addition seems wrong to
EntitySynchronizationInterceptor. Once an entity bean
transaction synchronization is registered with the TM, it is not
removed from the TM until a transaction rollback or commit.
----------------------------------------------------------------------
Comment By: Dain Sundstrom (dsundstrom)
Date: 2002-06-24 16:51
Message:
Logged In: YES
user_id=251431
This was fixed about two weeks ago in Branch_3_0 and HEAD.
The problem was in EntitySynchronizationInterceptor, which
was only adding synchronization on the way into a call and
not on the way out. Now it does it in both directions.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=573199&group_id=22866
-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development