Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java,v diff -u -r1.5.6.1 -r1.5.6.2 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java 25 Feb 2010 23:47:12 -0000 1.5.6.1 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java 15 Dec 2010 17:30:31 -0000 1.5.6.2 @@ -120,7 +120,7 @@ * */ public Assessment() { - attachments = new TreeSet(new SequencableComparator()); + attachments = new TreeSet(); questions = new TreeSet(new SequencableComparator()); overallFeedbacks = new TreeSet(new SequencableComparator()); } @@ -179,7 +179,7 @@ // clone attachment if (attachments != null) { Iterator iter = attachments.iterator(); - Set set = new TreeSet(new SequencableComparator()); + Set set = new TreeSet(); while (iter.hasNext()) { AssessmentAttachment file = (AssessmentAttachment) iter.next(); AssessmentAttachment newFile = (AssessmentAttachment) file.clone(); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Attic/AssessmentAttachment.java,v diff -u -r1.2 -r1.2.8.1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java 25 Feb 2009 22:16:33 -0000 1.2 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java 15 Dec 2010 17:30:31 -0000 1.2.8.1 @@ -37,7 +37,7 @@ * @hibernate.class table="tl_laasse10_attachment" * */ -public class AssessmentAttachment implements Cloneable { +public class AssessmentAttachment implements Cloneable, Comparable { private static final Logger log = Logger.getLogger(AssessmentAttachment.class); private Long uid; @@ -79,6 +79,16 @@ return new HashCodeBuilder().append(uid).append(fileVersionId).append(fileName).append(fileType) .append(created).toHashCode(); } + + @Override + public int compareTo(Object o) { + if ((o != null) && o instanceof AssessmentAttachment) { + AssessmentAttachment anotherAtt = (AssessmentAttachment) o; + return (int) (fileUuid - anotherAtt.getFileUuid()); + } else { + return 1; + } + } // ********************************************************** // get/set methods @@ -151,4 +161,5 @@ public void setCreated(Date created) { this.created = created; } + } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java,v diff -u -r1.16.6.2 -r1.16.6.3 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java 26 Feb 2010 07:08:48 -0000 1.16.6.2 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java 15 Dec 2010 17:30:31 -0000 1.16.6.3 @@ -357,15 +357,11 @@ List deleteAttachmentList = getDeletedAttachmentList(sessionMap); // current attachemnt in authoring instruction tab. - Iterator iter = attachmentList.iterator(); - while (iter.hasNext()) { - AssessmentAttachment newAtt = (AssessmentAttachment) iter.next(); - attPOSet.add(newAtt); - } + attPOSet.addAll(attachmentList); attachmentList.clear(); // deleted attachment. 2 possible types: one is persist another is non-persist before. - iter = deleteAttachmentList.iterator(); + Iterator iter = deleteAttachmentList.iterator(); while (iter.hasNext()) { AssessmentAttachment delAtt = (AssessmentAttachment) iter.next(); iter.remove();