Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -rd7807c73d8a9c76c44ea1a2a296d5f775afe2ac9 -r017ed225bae149252bb40a8e27a2323b8f8487c5 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision d7807c73d8a9c76c44ea1a2a296d5f775afe2ac9) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 017ed225bae149252bb40a8e27a2323b8f8487c5) @@ -805,14 +805,6 @@ // reset it to new toolContentId toolContentObj.setContentId(toolContentId); - Set criterias = toolContentObj.getRatingCriterias(); - if (criterias != null) { - for (LearnerItemRatingCriteria criteria : criterias) { - criteria.setToolContentId(toolContentId); - } - } - - // Calling DAO method below causes flush. That is why we need to reset tool content ID in rating criteria before it happens. ResourceUser user = resourceUserDao.getUserByUserIDAndContentID(newUserUid.longValue(), toolContentId); if (user == null) { user = new ResourceUser(); @@ -833,6 +825,13 @@ useRatings = useRatings || item.isAllowRating(); } + Set criterias = toolContentObj.getRatingCriterias(); + if (criterias != null) { + for (LearnerItemRatingCriteria criteria : criterias) { + criteria.setToolContentId(toolContentId); + } + } + resourceDao.saveObject(toolContentObj); } catch (ImportToolContentException e) { throw new ToolException(e);