Hi Andrus !
I was away for some time, I'm sorry that I had not replied to your email. We are about to release some intermediate version, and right after that w would look at moving to HEAD.
We can live with many to many count broken for some time.

Thank you
Marcin

On 07/08/2006, at 11:14 AM, Andrus Adamchik wrote:

Hi Marcin,

I just tried to reproduce it with the code from HEAD, and it seems to work (CayenneContextClientChannelEventsTst.testSyncManyToManyRelationship1) . Don't know if you have an opportunity to upgrade from 3.0-PROTO to HEAD (this will require package changes to Apache, and also using the new Modeler from HEAD). If not, please either submit your test case via Jira or send it to me directly. Let's take a look.

Andrus

On Aug 6, 2006, at 3:35 AM, Marcin Skladaniec wrote:

Hi everyone !

I have a problem with some counts in flattened many to many relationships. (remote persistence, v.3.0-PROTO July 5 2006) Generally the problem is when object exist in two contexts and the many to many relationship is modified.
To reproduce this :

        CayenneContext context = new CayenneContext(channel, true, true);

CLocation location = (CLocation) context.newObject (CLocation.class);
        CSpiece spiece = (CSpiece) context.newObject(CSpiece.class);
        context.commitChanges();
logger.warn("location has spieces : "+location.getSpieces ().size()); //prints 0 as supposed.

CayenneContext context2 = new CayenneContext(channel, true, true);

CLocation loc = (CLocation)context2.localObject (location.getObjectId(), null); CSpiece sp = (CSpiece)context2.localObject(spiece.getObjectId(), null);
                
        loc.addToSpieces(sp);
        context2.commitChanges();
logger.warn("loc has spieces : "+loc.getSpieces().size ()); // prints 1 as expected

logger.warn("location has spieces : "+location.getSpieces ().size());// prints 2, and here lies the problem.

printing all spieces for location gives two results :
1 - <[EMAIL PROTECTED], id=<ObjectId:Spieceid=280>, state=committed, [EMAIL PROTECTED]> 2 - <[EMAIL PROTECTED], id=<ObjectId:Spieceid=280>, state=committed, [EMAIL PROTECTED]>
Of course in context this object exists only once.

If new context is spawned everything works fine, but I cant use new context in this case.
There is no problem as well when removing from relationship.

Is it a bug, or I'm doing something wrong here ?

Marcin
PS I have a small standalone project which reproduces this problem, if it would be needed please e-mail me.

-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001   fax +61 2 9550 4001


-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001   fax +61 2 9550 4001


Reply via email to