Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== diff -u -rdf5031224eb701a152c791bc8b4f4dee76fa1833 -r9aab81afe045c9bff18942543f6d960fe3ec6544 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision df5031224eb701a152c791bc8b4f4dee76fa1833) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 9aab81afe045c9bff18942543f6d960fe3ec6544) @@ -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 =================================================================== diff -u -r3fdcee6fa67ca8bbbf112bb01a95873fc76a6b0f -r9aab81afe045c9bff18942543f6d960fe3ec6544 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java (.../AssessmentAttachment.java) (revision 3fdcee6fa67ca8bbbf112bb01a95873fc76a6b0f) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java (.../AssessmentAttachment.java) (revision 9aab81afe045c9bff18942543f6d960fe3ec6544) @@ -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 =================================================================== diff -u -rabf33c38c735b09fa2eaa41b457cd278cffdcf01 -r9aab81afe045c9bff18942543f6d960fe3ec6544 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision abf33c38c735b09fa2eaa41b457cd278cffdcf01) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 9aab81afe045c9bff18942543f6d960fe3ec6544) @@ -356,15 +356,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();