Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -rd34efdae1ebc6ee4aec70a187bcf396af363e3b1 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision d34efdae1ebc6ee4aec70a187bcf396af363e3b1) @@ -712,7 +712,7 @@ LearningDesign design = requestedLesson.getLearningDesign(); boolean designModified = false; - for (Activity activity : (Set) design.getActivities()) { + for (Activity activity : design.getActivities()) { Integer newMaxId = startSystemActivity(activity, design.getMaxID(), lessonStartTime, requestedLesson.getLessonName()); if (newMaxId != null) { @@ -1124,11 +1124,15 @@ lessonDAO.deleteByProperties(NotebookEntry.class, notebookProperties); lessonDAO.deleteLesson(lesson); + // manually delete transitions as subsequent activity removal does not cascade to them + lessonDAO.deleteByProperty(Transition.class, "learningDesign.learningDesignId", + learningDesign.getLearningDesignId()); + // remove each Tool activity content // It has to be done before removing BranchEntries as fetching Tool content // in its own transaction would re-add connected BranchEntries (Hibernate error) Set systemActivities = new HashSet(); - for (Activity activity : (Set) learningDesign.getActivities()) { + for (Activity activity : learningDesign.getActivities()) { // get the real object, not the proxy activity = activityDAO.getActivityByActivityId(activity.getActivityId()); if (activity.isToolActivity()) { @@ -1585,7 +1589,7 @@ ComplexActivity complexActivity = (ComplexActivity) getActivityById( currentActivity.getActivityId()); // forget all records within complex activity - for (Activity childActivity : (Set) complexActivity.getActivities()) { + for (Activity childActivity : complexActivity.getActivities()) { if (childActivity.isSequenceActivity()) { // mark the activity to be "unbranched" groupings.add(childActivity); @@ -2347,7 +2351,7 @@ Grouping grouping = branchingActivity.getGrouping(); if (grouping.getGroups().isEmpty()) { LearningDesign design = branchingActivity.getLearningDesign(); - for (Activity childActivity : (Set) branchingActivity.getActivities()) { + for (Activity childActivity : branchingActivity.getActivities()) { SequenceActivity branch = (SequenceActivity) getActivityById(childActivity.getActivityId()); Group group = lessonService.createGroup(grouping, branch.getTitle()); groupingDAO.insert(group);