This is definitely a bug of somekind.

If you come up with a small jUnit test case for this, we'll add it to the test suite.

Off the top of my head (guessing here) I would suspect something is wrong with the 
hashing of instances, or something else along those lines.  

All the BMP container code is in:
   src/main/org/openejb/core/entity/


With the main two classes being EntityContainer.java and EntityInstanceManager.java.

EntityContainer.java is the main class.  It has an EntityInstanceManager that manages 
creation and pooling of instances.  

If you are using the Local server, you will be dealing with a dynamically generated 
proxy delegating to an instance of org.openejb.core.entity.EntityEjbObjectHandler.  
This handler is constructed with the bean name and a reference to the entities primary 
key.

If you are using the Remote server, you will be dealing with a dynamically generated 
proxy delegating to an instance of org.openejb.client.EntityEJBObjectHandler  ( in the 
src/server/ directory).  This object will also be holding a reference to the bean's 
primary key.

The beans instances are held by the EntityInstanceManager indexed by primary key.  The 
respective EntityObjectHandler will send the primary key as part of the method call 
into the EntityContainer.  The container will use that primary key to as the instance 
manager for the bean instance.

I don't have the time to look into this, but that should give you some good bacground 
to take a look at the problem.

-David

On Wed, Sep 17, 2003 at 08:27:31PM +0100, Paulo Lopes wrote:
>    Hi,
> 
>    I've been with a strage bug for a day or two and i can't figure out what's
>    wrong...
> 
>    I've 26 BMP beans and they work fine, but when i make a search that
>    returns more than 270 beans to my application i get lot's of
>    ClassCastException's and the EJB container start behaving strange,
>    example:
> 
>    findByPrimaryKey ( new Integer ( 10 ) );
> 
>    will return the bean with id = 37 or some other.
> 
>    The strange part is that it works if the return objects are less than a
>    certain number. The number changes from object type to object type,
>    example:
> 
>    for Object A the max returned objects without error is 270
>    for Object B the max returned objects without error is 350
> 
>    The code is almost the same between object's the main difference is on the
>    related SQL table.
> 
>    I'm using a SQLServer JDBC connection with the jTDS driver. I've tested
>    the query on a JDBC SQL GUI App and it works fine (using jTDS driver [same
>    version as used on OpenEJB])
> 
>    I'm going nuts with this strange bug... any thoughts?
> 
>    --
>    NETVITA.com
>    Paulo Lopes
>    Geek by nature, Linux by choice!




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
http://OpenEJB.sf.net
OpenEJB-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/openejb-user

Reply via email to