Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -rfdca3605f0b782b19e214abbe94df6f4a457b88e -r177936f9116cf23277b94131b9562eea6cc6328b --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision fdca3605f0b782b19e214abbe94df6f4a457b88e) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 177936f9116cf23277b94131b9562eea6cc6328b) @@ -612,7 +612,10 @@ if ( lesson.isPreviewLesson() ) { ArrayList learnerList = new ArrayList(); learnerList.add(learner); - lessonService.performGrouping(grouping, group!=null?group.getGroupId():null, learnerList); + if ( group != null && group.getGroupId() != null ) + lessonService.performGrouping(grouping, group!=null?group.getGroupId():null, learnerList); + else + lessonService.performGrouping(grouping, group.getGroupName(), learnerList); groupingDone = true; } return groupingDone; @@ -994,6 +997,13 @@ } else { Group group = lessonService.createGroup(grouping, selectedBranch.getTitle()); group.allocateBranchToGroup(null, selectedBranch, branchingActivity); + if ( ! forceGrouping(lesson, grouping, group, learner) ) { + String error = "selectBranch: learner "+learnerId+" cannot be added to the group "+group+" for the branch " + +selectedBranch+" for the lesson "+lesson.getLessonName()+" preview is "+lesson.isPreviewLesson() + +". This will only work if preview is true."; + log.error(error); + throw new LearnerServiceException(error); + } } groupingDAO.update(grouping);