Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v diff -u -r1.195.2.36 -r1.195.2.37 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 19 Dec 2016 16:13:01 -0000 1.195.2.36 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 31 Dec 2016 14:27:39 -0000 1.195.2.37 @@ -454,7 +454,7 @@ public void createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName, List organizationUsers, String staffGroupName, List staffs, Integer userId) { Lesson newLesson = lessonDAO.getLesson(new Long(lessonId)); - + // if lesson isn't started recreate the lesson class if (newLesson.isLessonStarted()) { securityService.isLessonMonitor(lessonId, userId, "create class for lesson", true); @@ -905,8 +905,10 @@ if (activity.isBranchingActivity()) { BranchingActivity branchingActivity = (BranchingActivity) activity; Grouping grouping = branchingActivity.getGrouping(); - groupingDAO.delete(grouping); - + if (grouping != null) { + groupingDAO.delete(grouping); + } + for (BranchActivityEntry entry : branchingActivity.getBranchActivityEntries()) { BranchCondition condition = entry.getCondition(); if (condition != null) { @@ -1716,7 +1718,7 @@ // setup staff group Group staffGroup = Group.createStaffGroup(newLessonClass, staffGroupName, new HashSet(staffs)); newLessonClass.setStaffGroup(staffGroup); - + // setup learner group // TODO:need confirm group name! newLessonClass.getGroups() @@ -2259,8 +2261,8 @@ lesson.getForceLearnerRestart(), lesson.getAllowLearnerRestart(), null, null); // save LessonClasses - this.createLessonClassForLesson(newLesson.getLessonId(), group, learnerGroupName, - learnerUsers, staffGroupName, staffUsers, creatorId); + this.createLessonClassForLesson(newLesson.getLessonId(), group, learnerGroupName, learnerUsers, + staffGroupName, staffUsers, creatorId); // start lesson; passing creatorId as this parameter is only used for security check whether user is allowed to start a lesson this.startLesson(newLesson.getLessonId(), creatorId);