Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java,v diff -u -r1.32 -r1.33 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java 17 Nov 2005 23:08:34 -0000 1.32 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java 13 Jan 2006 04:15:14 -0000 1.33 @@ -274,7 +274,7 @@ learnerProgress = progressEngine.calculateProgress(learner, lesson, completedActivity,learnerProgress); learnerProgressDAO.updateLearnerProgress(learnerProgress); - //createToolSessionsIfNecessary(learnerProgress); + // createToolSessionsIfNecessary(learnerProgress); } catch (ProgressException e) { @@ -409,9 +409,8 @@ { for(Iterator i = nextActivity.getAllToolActivities().iterator();i.hasNext();) { - ToolActivity toolActivity = (ToolActivity)i.next(); - if(shouldCreateToolSession(learnerProgress,toolActivity)) - createToolSessionFor(toolActivity, learnerProgress.getUser(),learnerProgress.getLesson()); + ToolActivity toolActivity = (ToolActivity)i.next(); + createToolSessionFor(toolActivity, learnerProgress.getUser(),learnerProgress.getLesson()); } } catch (LamsToolServiceException e) @@ -427,25 +426,6 @@ } /** - * Check up the database to see whether there is an existing tool session - * has been created already. - * @return the check up result. - */ - private boolean shouldCreateToolSession(LearnerProgress learnerProgress, - ToolActivity toolActivity) - { - ToolSession targetSession = null; - - if(!toolActivity.getApplyGrouping().booleanValue()) - targetSession = toolSessionDAO.getToolSessionByLearner(learnerProgress.getUser(), - toolActivity); - else - targetSession = toolSessionDAO.getToolSessionByGroup(toolActivity.getGroupFor(learnerProgress.getUser()), - toolActivity); - return targetSession!=null?false:true; - } - - /** *

Create a lams tool session for learner against a tool activity. This will * have concurrency issues interms of grouped tool session because it might * be inserting some tool session that has already been inserted by other @@ -464,9 +444,11 @@ { ToolSession toolSession = lamsCoreToolService.createToolSession(learner,toolActivity,lesson); - toolActivity.getToolSessions().add(toolSession); - - lamsCoreToolService.notifyToolsToCreateSession(toolSession.getToolSessionId(), toolActivity); + // if the tool session already exists, will return null + if ( toolSession !=null ) { + toolActivity.getToolSessions().add(toolSession); + lamsCoreToolService.notifyToolsToCreateSession(toolSession.getToolSessionId(), toolActivity); + } }