public Attachment createAttachment(final ExternalAttachment externalAttachment) { Null.not("externalAttachment", externalAttachment); Null.not("attachedFile", externalAttachment.getAttachedFile()); Null.not("fileName", externalAttachment.getFileName()); Null.not("issueId", externalAttachment.getIssueId()); final Issue issue = issueManager.getIssueObject(new Long(externalAttachment.getIssueId())); if (issue == null) { throw new IllegalArgumentException("Can not create an attachment against a null issue."); } try { // The createAttachment() method expects a username, not a userkey final ApplicationUser attacher = userManager.getUserByKey(externalAttachment.getAttacher()); final String attacherUserName = (attacher == null) ? null : attacher.getName(); return attachmentManager.createAttachmentCopySourceFile(externalAttachment.getAttachedFile(), externalAttachment.getFileName(), GENERIC_CONTENT_TYPE, attacherUserName, issue, Collections.emptyMap(), externalAttachment.getAttachedDate()); } catch (final AttachmentException e) { log.error("Unable to create issue file attachment with name '" + externalAttachment.getFileName() + "'.", e); return null; } }