Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -r0535170cfc6c7273bb4aacbebdf68c98f455d885 -rf7b2dd6bd944a7f6286aeb748e999020b7b01a9b --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 0535170cfc6c7273bb4aacbebdf68c98f455d885) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision f7b2dd6bd944a7f6286aeb748e999020b7b01a9b) @@ -26,7 +26,7 @@ import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.lesson.Lesson; -import org.lamsfoundation.lams.tool.service.LamsToolServiceException; +import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r2738efb328208b5fb4ddaddfa18d0146bebc37b6 -rf7b2dd6bd944a7f6286aeb748e999020b7b01a9b --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 2738efb328208b5fb4ddaddfa18d0146bebc37b6) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision f7b2dd6bd944a7f6286aeb748e999020b7b01a9b) @@ -22,21 +22,20 @@ import java.io.IOException; import java.util.Date; -import java.util.Hashtable; import java.util.HashMap; import java.util.HashSet; +import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.Vector; import org.apache.log4j.Logger; import org.lamsfoundation.lams.authoring.service.IAuthoringService; +import org.lamsfoundation.lams.learning.service.ILearnerService; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ComplexActivity; import org.lamsfoundation.lams.learningdesign.GateActivity; - - import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.ScheduleGateActivity; @@ -53,8 +52,10 @@ import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.ToolSession; +import org.lamsfoundation.lams.tool.exception.DataMissingException; +import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; +import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; -import org.lamsfoundation.lams.tool.service.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; @@ -72,8 +73,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; -import org.lamsfoundation.lams.learning.service.ILearnerService; - /** *

This is the major service facade for all monitoring functionalities. It is * configured as a Spring factory bean so as to utilize the Spring's IOC and @@ -243,8 +242,27 @@ Activity currentActivity = (Activity) i.next(); if (currentActivity.isToolActivity()) { - Long newContentId = lamsCoreToolService.notifyToolToCopyContent((ToolActivity) currentActivity); - ((ToolActivity) currentActivity).setToolContentId(newContentId); + try { + Long newContentId = newContentId = lamsCoreToolService.notifyToolToCopyContent((ToolActivity) currentActivity); + ((ToolActivity) currentActivity).setToolContentId(newContentId); + + } catch (DataMissingException e) { + String error = "Unable to initialise the lesson. Data is missing for activity "+currentActivity.getActivityUIID() + +" in learning design "+learningDesignId + +" default content may be missing for the tool. Error was " + +e.getMessage(); + log.error(error,e); + throw new MonitoringServiceException(error,e); + } catch (ToolException e) { + String error = "Unable to initialise the lesson. Tool encountered an error copying the data is missing for activity " + +currentActivity.getActivityUIID() + +" in learning design "+learningDesignId + +" default content may be missing for the tool. Error was " + +e.getMessage(); + log.error(error,e); + throw new MonitoringServiceException(error,e); + } + } } authoringService.updateLearningDesign(copiedLearningDesign); @@ -706,10 +724,20 @@ } catch (LamsToolServiceException e) { - throw new MonitoringServiceException("Error occurred at " + - "[initToolSessionFor]- Fail to call tool services",e); - } - } + String error = "Unable to initialise tool session. Fail to call tool services. Error was " + +e.getMessage(); + log.error(error,e); + throw new MonitoringServiceException(error,e); + } + catch (ToolException e) + { + String error = "Unable to initialise tool session. Tool encountered an error. Error was " + +e.getMessage(); + log.error(error,e); + throw new MonitoringServiceException(error,e); + } + } + /** * Returns whether we should initialize tool session or not. Tool sessions Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -r3cb213c4ee7348eade951d1b26b2dba12736a205 -rf7b2dd6bd944a7f6286aeb748e999020b7b01a9b --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 3cb213c4ee7348eade951d1b26b2dba12736a205) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision f7b2dd6bd944a7f6286aeb748e999020b7b01a9b) @@ -36,7 +36,7 @@ import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy; -import org.lamsfoundation.lams.tool.service.LamsToolServiceException; +import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java =================================================================== diff -u -r5ad1dd9e6b4afc491aaeb371dc21cb1c8f5ec102 -rf7b2dd6bd944a7f6286aeb748e999020b7b01a9b --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 5ad1dd9e6b4afc491aaeb371dc21cb1c8f5ec102) +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision f7b2dd6bd944a7f6286aeb748e999020b7b01a9b) @@ -32,7 +32,7 @@ import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dao.hibernate.LessonDAO; -import org.lamsfoundation.lams.tool.service.LamsToolServiceException; +import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;