Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java,v diff -u -r1.11 -r1.12 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java 29 May 2006 23:24:55 -0000 1.11 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java 30 May 2006 04:23:15 -0000 1.12 @@ -145,6 +145,10 @@ } resource.attachments = set; } + //clone ReourceUser as well + if(this.createdBy != null) + resource.setCreatedBy((ResourceUser) this.createdBy.clone()); + } catch (CloneNotSupportedException e) { log.error("When clone " + Resource.class + " failed"); } catch (ItemNotFoundException e) { Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java,v diff -u -r1.10 -r1.11 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java 18 May 2006 06:39:06 -0000 1.10 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java 30 May 2006 04:23:15 -0000 1.11 @@ -93,6 +93,10 @@ obj.itemInstructions = set; } ((ResourceItem)obj).setUid(null); + //clone ReourceUser as well + if(this.createBy != null) + ((ResourceItem)obj).setCreateBy((ResourceUser) this.createBy.clone()); + } catch (CloneNotSupportedException e) { log.error("When clone " + ResourceItem.class + " failed"); } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceUser.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceUser.java,v diff -u -r1.5 -r1.6 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceUser.java 17 May 2006 06:55:32 -0000 1.5 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceUser.java 30 May 2006 04:23:15 -0000 1.6 @@ -36,7 +36,7 @@ * @hibernate.class table="tl_larsrc11_user" * */ -public class ResourceUser { +public class ResourceUser implements Cloneable{ private static final long serialVersionUID = -7043502180037866257L; private static Logger log = Logger.getLogger(ResourceUser.class); @@ -60,8 +60,23 @@ this.loginName = user.getLogin(); this.session = session; } - - + /** + * Clone method from java.lang.Object + */ + public Object clone(){ + + ResourceUser user = null; + try{ + user = (ResourceUser) super.clone(); + user.setUid(null); + //never clone session + user.setSession(null); + } catch (CloneNotSupportedException e) { + log.error("When clone " + ResourceUser.class + " failed"); + } + + return user; + } // ********************************************************** // Get/Set methods // ********************************************************** Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java,v diff -u -r1.29 -r1.30 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 29 May 2006 07:15:17 -0000 1.29 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 30 May 2006 04:23:15 -0000 1.30 @@ -739,7 +739,8 @@ if(toolContentObj == null) throw new DataMissingException("Unable to find tool content by given id :" + toolContentId); - toolContentObj = Resource.newInstance(toolContentObj,toolContentId,resourceToolContentHandler); + //set ResourceToolContentHandler as null to avoid copy file node in repository again. + toolContentObj = Resource.newInstance(toolContentObj,toolContentId,null); toolContentObj.setToolContentHandler(null); toolContentObj.setOfflineFileList(null); toolContentObj.setOnlineFileList(null); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java,v diff -u -r1.12 -r1.13 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java 29 May 2006 07:17:36 -0000 1.12 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java 30 May 2006 04:23:28 -0000 1.13 @@ -333,7 +333,7 @@ obj = super.clone(); //never clone key! ((SubmitFilesContent)obj).setContentID(null); - //clone SubmitFIleSession object + //clone SubmitFileSession object if(toolSession != null ){ Iterator iter = toolSession.iterator(); Set set = new HashSet(); @@ -347,11 +347,13 @@ Set set = new HashSet(); while(iter.hasNext()){ InstructionFiles file = (InstructionFiles)iter.next(); - //duplicate file node in repository - NodeKey keys = toolContentHandler.copyFile(file.getUuID()); InstructionFiles newFile = (InstructionFiles) file.clone(); - newFile.setUuID(keys.getUuid()); - newFile.setVersionID(keys.getVersion()); + //duplicate file node in repository + if(toolContentHandler != null){ + NodeKey keys = toolContentHandler.copyFile(file.getUuID()); + newFile.setUuID(keys.getUuid()); + newFile.setVersionID(keys.getVersion()); + } set.add(newFile); } ((SubmitFilesContent)obj).instructionFiles= set; Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java,v diff -u -r1.43 -r1.44 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 29 May 2006 07:17:25 -0000 1.43 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 30 May 2006 04:23:28 -0000 1.44 @@ -228,7 +228,8 @@ if(toolContentObj == null) throw new DataMissingException("Unable to find tool content by given id :" + toolContentId); - toolContentObj = SubmitFilesContent.newInstance(toolContentObj,toolContentId,sbmtToolContentHandler); + //set toolContentHandler as null to avoid duplicate file node in repository. + toolContentObj = SubmitFilesContent.newInstance(toolContentObj,toolContentId,null); toolContentObj.setToolSession(null); toolContentObj.setToolContentHandler(null); try {