private void createTemporaryAttachment(final String filename, final String contentType, final File file) throws FileNotFoundException { final FileInputStream inputStream = new FileInputStream(file); try { final Either<Issue, Project> target = isCreate() ? Either.<Issue, Project>right(getProjectObject()) : Either.<Issue, Project>left(getIssueObject()); final Either<AttachmentError, TemporaryWebAttachment> result = temporaryWebAttachmentManager .createTemporaryWebAttachment( inputStream, filename, contentType, file.length(), target, getFormToken(), getLoggedInUser() ); temporaryWebAttachment = result.right().on(new Function<AttachmentError, TemporaryWebAttachment>() { @Override public TemporaryWebAttachment apply(final AttachmentError error) { addErrorMessage(error.getLocalizedMessage(), error.getReason()); return null; } }); } finally { IOUtils.closeQuietly(inputStream); } }
@Override public AttachmentsBulkOperationResult<ChangeItemBean> convertTemporaryAttachments( @Nullable final ApplicationUser user, final Issue issue, final List<String> temporaryAttachmentsIds) { return new PreValidatedActionExecutor<AttachmentError>() .withValidator(createCanConvertTemporaryAttachmentsValidator(issue, user)) .executeFailOnFirstError(new Supplier<Either<AttachmentError, AttachmentsBulkOperationResult<ChangeItemBean>>>() { @Override public Either<AttachmentError, AttachmentsBulkOperationResult<ChangeItemBean>> get() { return Either.right(convertTemporaryAttachmentsWithoutValidation(user, issue, temporaryAttachmentsIds)); } }) .right().on(new Function<AttachmentError, AttachmentsBulkOperationResult<ChangeItemBean>>() { @Override public AttachmentsBulkOperationResult<ChangeItemBean> apply( @SuppressWarnings ("NullableProblems") final AttachmentError input) { return new AttachmentsBulkOperationResult<ChangeItemBean>( ImmutableList.of(input), Collections.<ChangeItemBean>emptyList()); } }); }