public Object clone() throws CloneNotSupportedException { final MailDefinition mailDefinition = (MailDefinition) super.clone(); mailDefinition.bodyReport = (MasterReport) bodyReport.clone(); mailDefinition.attachmentTypes = (ArrayList) attachmentTypes.clone(); mailDefinition.attachmentReports = (ArrayList) attachmentReports.clone(); mailDefinition.attachmentReports.clear(); for (int i = 0; i < attachmentReports.size(); i++) { final MasterReport report = (MasterReport) attachmentReports.get(i); mailDefinition.attachmentReports.add(report.clone()); } return mailDefinition; }