Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java =================================================================== diff -u -r3bd3be95f64eabe12ef8da8d8a7fcd9bcbd9c320 -rab085dcfd9710ad006927a3ac39d3943770e2584 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision 3bd3be95f64eabe12ef8da8d8a7fcd9bcbd9c320) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision ab085dcfd9710ad006927a3ac39d3943770e2584) @@ -231,8 +231,8 @@ .getActivitiesByLibraryID(learningLibrary.getLearningLibraryId()); if ((templateActivities != null) & (templateActivities.size() == 0)) { - log.error("Learning Library with ID " + learningLibrary.getLearningLibraryId() - + " does not have a template activity"); + log.error("Learning Library with ID " + learningLibrary.getLearningLibraryId() + "\"" + + learningLibrary.getTitle() + "\" does not have a template activity"); } // convert library to DTO format @@ -256,9 +256,14 @@ List tools = new ArrayList(); for (LearningLibraryDTO learningLibrary : learningLibraries) { // skip invalid tools - boolean isParallel = learningLibrary.getTemplateActivities().size() > 1; + List libraryActivityDTOs = learningLibrary.getTemplateActivities(); + if (libraryActivityDTOs.isEmpty()) { + log.error("Learning Library with ID " + learningLibrary.getLearningLibraryID() + "\"" + + learningLibrary.getTitle() + "\" does not have a template activity"); + continue; + } + boolean isParallel = libraryActivityDTOs.size() > 1; if ((includeInvalid || learningLibrary.getValidFlag()) && (includeParallel || !isParallel)) { - List libraryActivityDTOs = learningLibrary.getTemplateActivities(); LibraryActivityDTO libraryActivityDTO = libraryActivityDTOs.get(0); ToolDTO toolDTO = new ToolDTO(); if (isParallel) {