Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -r15ef8d2626176017e80348a3f2280d6d2eef8e53 -r5c8ea9f3437bcc471132ebb45345e32702a2a029 --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 15ef8d2626176017e80348a3f2280d6d2eef8e53) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 5c8ea9f3437bcc471132ebb45345e32702a2a029) @@ -2163,7 +2163,7 @@ throws WDDXProcessorConversionException { Tool tool = toolDAO.getToolByID(WDDXProcessor.convertToLong(activityDetails, WDDXTAGS.TOOL_ID)); toolActivity.setTool(tool); - + // copy content if its the default one Long toolContentId = WDDXProcessor.convertToLong(activityDetails, WDDXTAGS.TOOL_CONTENT_ID); if (toolContentId.equals(tool.getDefaultToolContentId())) { @@ -2175,7 +2175,8 @@ } } if (log.isDebugEnabled()) { - log.debug("In tool activity UUID" + activityDetails.get(WDDXTAGS.ACTIVITY_UIID) + " tool content id " + log.debug("In tool activity UUID " + + WDDXProcessor.convertToInteger(activityDetails, WDDXTAGS.ACTIVITY_UIID) + " tool content id " + toolContentId); } toolActivity.setToolContentId(toolContentId); @@ -2184,7 +2185,7 @@ private void buildToolActivity(ToolActivity toolActivity, JSONObject activityDetails) throws JSONException { Tool tool = toolDAO.getToolByID(JsonUtil.optLong(activityDetails, AuthoringJsonTags.TOOL_ID)); toolActivity.setTool(tool); - + // copy content if its the default one Long toolContentId = JsonUtil.optLong(activityDetails, AuthoringJsonTags.TOOL_CONTENT_ID); if (toolContentId == null || toolContentId.equals(tool.getDefaultToolContentId())) { @@ -2721,7 +2722,18 @@ entry.setGateOpenWhenConditionMet(gateOpenWhenConditionMet); } + Group existingGroup = entry.getGroup(); + if (existingGroup != null && !existingGroup.getGroupId().equals(group.getGroupId())) { + existingGroup.getBranchActivities().remove(entry); + } entry.setGroup(group); + if (group != null) { + if (group.getBranchActivities() == null) { + group.setBranchActivities(new HashSet()); + } + group.getBranchActivities().add(entry); + } + entry.setCondition(condition); if (branchingActivity.isConditionGate()) { @@ -2861,7 +2873,18 @@ entry.setGateOpenWhenConditionMet(gateOpenWhenConditionMet); } + Group existingGroup = entry.getGroup(); + if (existingGroup != null && !existingGroup.getGroupId().equals(group.getGroupId())) { + existingGroup.getBranchActivities().remove(entry); + } entry.setGroup(group); + if (group != null) { + if (group.getBranchActivities() == null) { + group.setBranchActivities(new HashSet()); + } + group.getBranchActivities().add(entry); + } + entry.setCondition(condition); if (branchingActivity.isConditionGate()) {