Looks like you are using Tapestry. Is it T4? Are you using the new @For component (or similar)?
-----Original Message----- From: Tomi NA [mailto:[EMAIL PROTECTED] Sent: Monday, March 20, 2006 8:56 AM To: [EMAIL PROTECTED] Subject: Exception: "Temporary ID hasn't been replaced on commit?" I have an app I based on Cayenne 1.2M1, but having had some hard to trace problems, I upgraded to cayenne 1.2M11. However, I now have a new problem when I try to fill a many to many relationship: Unable to invoke method onAccept on [EMAIL PROTECTED]: [v.1.2M11 February 13 2006] Temporary ID hasn't been replaced on commit: {<ObjectId:Answer, TEMP:80171E18C0A80091>; new; [toOfferedAnswer=>{<ObjectId:OfferedAnswer, offered_answer_id=4>}; toPerson=>{<ObjectId:Person, person_id=7537>}]} The code that breaks looks like this: for (int i = 0; i < getChosenAnswers().length; i++) { OfferedAnswer oa = (OfferedAnswer)getChosenAnswers()[i]; if (oa != null) { Answer a = (Answer) context.createAndRegisterNewObject( Answer.class); oa.addToAnswerArray(a); person.addToAnswerArray(a); } } The Answer table hasn't got a primary key: it has two attributes (OfferedAnswerID, PersonID) which are foreign keys to their respective tables. It worked just fine up until I upgraded cayenne.jar. Are the .xml files backwards compatible or do I need to upgrade them, too? What seems to be the problem here? TIA, Tomislav
