Index: lams_build/lib/lams/lams-monitoring.jar =================================================================== diff -u -r402ad7929fe46e42c5045f3110f28897f1313ab2 -r56e8c3e875e12ad1764f848b8cd97d505cebd823 Binary files differ Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java =================================================================== diff -u -r402ad7929fe46e42c5045f3110f28897f1313ab2 -r56e8c3e875e12ad1764f848b8cd97d505cebd823 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 402ad7929fe46e42c5045f3110f28897f1313ab2) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 56e8c3e875e12ad1764f848b8cd97d505cebd823) @@ -275,15 +275,22 @@ // can't just use the activities out of the learning design // as we get CGLIB objects! If this was permanent code, // then we would generate the data properly in the service level. - log.debug("Found lesson "+lessonId+" "+element.getLessonName()); Set activities = element.getLearningDesign().getActivities(); Set activityDTOSet= new HashSet(); + Set processedActivityIds = new HashSet(); + Iterator actIterator = activities.iterator(); while (actIterator.hasNext()) { Activity activity = (Activity) actIterator.next(); - AuthoringActivityDTO dto = activity.getAuthoringActivityDTO(); - activityDTOSet.add(dto); - log.debug("Activity "+activity); + Set dtos = activity.getAuthoringActivityDTOSet(); + Iterator dtoIterator = dtos.iterator(); + while (dtoIterator.hasNext()) { + AuthoringActivityDTO dto= (AuthoringActivityDTO) dtoIterator.next(); + if ( ! processedActivityIds.contains(dto.getActivityID()) ) { + activityDTOSet.add(dto); + processedActivityIds.add(dto.getActivityID()); + } + } } // now that all the activities are loaded, we can copy them into our own set.