Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml,v diff -u -r1.25 -r1.26 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 21 Jun 2006 12:04:57 -0000 1.25 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 9 Aug 2006 01:32:22 -0000 1.26 @@ -223,9 +223,10 @@ @hibernate.class public abstract - - - @hibernate.set lazy="false" inverse="true" cascade="all-delete-orphan" sort="org.lamsfoundation.lams.learningdesign.ActivityOrderComparator" + + + + @hibernate.set lazy="false" inverse="true" cascade="save-update" sort="org.lamsfoundation.lams.learningdesign.ActivityOrderComparator" @hibernate.collection-key column="parent_activity_id" @hibernate.collection-one-to-many class="org.lamsfoundation.lams.learningdesign.Activity" Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java,v diff -u -r1.21 -r1.22 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java 6 Aug 2006 04:24:37 -0000 1.21 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java 9 Aug 2006 01:32:22 -0000 1.22 @@ -104,7 +104,7 @@ } /** - * @hibernate.set lazy="true" inverse="true" cascade="all-delete-orphan" sort="org.lamsfoundation.lams.learningdesign.ActivityOrderComparator" + * @hibernate.set lazy="true" inverse="true" cascade="save-update" sort="org.lamsfoundation.lams.learningdesign.ActivityOrderComparator" * @hibernate.collection-key column="parent_activity_id" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.learningdesign.Activity" * Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java,v diff -u -r1.9 -r1.10 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java 2 Aug 2006 06:15:37 -0000 1.9 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java 9 Aug 2006 01:32:22 -0000 1.10 @@ -333,22 +333,25 @@ OptionsActivity optionsActivity = (OptionsActivity)parentActivity; Set childActivities = optionsActivity.getActivities(); //childActivities should be sorted according to order id (using the activityOrderComparator) Iterator i = childActivities.iterator(); - while (i.hasNext()) + while (i.hasNext() && validOrderId) { Activity childActivity = (Activity)i.next(); thisActivityOrderId= childActivity.getOrderId(); if (previousActivityOrderId != null) { //compare the two numbers - if (thisActivityOrderId.longValue() != (previousActivityOrderId.longValue() + 1)) - validOrderId = validOrderId && false; + if (thisActivityOrderId==null ) { + validOrderId = false; + } else if ( thisActivityOrderId.longValue() != (previousActivityOrderId.longValue() + 1)) { + validOrderId = false; + } } else { //this is the first activity, since the previousActivityId is null - if(thisActivityOrderId.longValue()!= 1) - validOrderId = validOrderId && false; + if(thisActivityOrderId==null || thisActivityOrderId.longValue()!= 1) + validOrderId = false; } previousActivityOrderId = thisActivityOrderId; }