Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml =================================================================== diff -u -r250486f86b66ac04cece0001879c3dc39c96ed98 -r1274faa8cf4613e5d8537ff2954796f1aa1ed5b5 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 250486f86b66ac04cece0001879c3dc39c96ed98) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 1274faa8cf4613e5d8537ff2954796f1aa1ed5b5) @@ -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 =================================================================== diff -u -rc21079bc26cf334c99c5194da3ae223f7bfec9bb -r1274faa8cf4613e5d8537ff2954796f1aa1ed5b5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision c21079bc26cf334c99c5194da3ae223f7bfec9bb) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision 1274faa8cf4613e5d8537ff2954796f1aa1ed5b5) @@ -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 =================================================================== diff -u -r2b636f4e834cd0b45c00bb3abf6a6b5e5f3161c8 -r1274faa8cf4613e5d8537ff2954796f1aa1ed5b5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision 2b636f4e834cd0b45c00bb3abf6a6b5e5f3161c8) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision 1274faa8cf4613e5d8537ff2954796f1aa1ed5b5) @@ -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; }