Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -rd52c700f83126a2632c10012bf2c8f1bceed3516 -r51c921dc0452b3fa53901837bf69e1ddbb4fd02a --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision d52c700f83126a2632c10012bf2c8f1bceed3516) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 51c921dc0452b3fa53901837bf69e1ddbb4fd02a) @@ -2103,7 +2103,7 @@ return numDeleted; } - /* Grouping and branching related calls */ + /* Grouping and branching related calls */ /** * Get all the active learners in the lesson who are not in a group/branch * @@ -2652,8 +2652,6 @@ // todo: convert:data type: Integer orgId = WDDXProcessor.convertToInteger(MonitoringConstants.KEY_ORGANISATION_ID, table .get(MonitoringConstants.KEY_ORGANISATION_ID)); - long lessonId = WDDXProcessor.convertToLong(MonitoringConstants.KEY_LESSON_ID, - table.get(MonitoringConstants.KEY_LESSON_ID)).longValue(); // get learner group info Hashtable learnerMap = (Hashtable) table.get(MonitoringConstants.KEY_LEARNER); @@ -2697,14 +2695,20 @@ } for (int i = 0; i < numLessons; i++) { + Long lessonId = lessonIds.get(i); List learnerList = new LinkedList(); // get every numLessons'th learner for (int j = i; j < allLearners.size(); j += numLessons) { learnerList.add(allLearners.get(j)); } // Create Lesson class - createLessonClassForLesson(lessonId, organisation, learnerGroupName + " " + i, learnerList, - staffGroupName + " " + i, staffList, creatorUserId); + if (lessonId != null) { + createLessonClassForLesson(lessonId, organisation, learnerGroupName + " " + i, learnerList, + staffGroupName + " " + i, staffList, creatorUserId); + } else { + // run out of lessons (shouldn't reach here) + return false; + } } return true;