@Override public Either<AttachmentError, ChangeItemBean> apply( @SuppressWarnings ("NullableProblems") final TemporaryWebAttachment tempAttachment) { final Either<AttachmentError, ChangeItemBean> conversionResult = attachmentManager.convertTemporaryAttachment( ConvertTemporaryAttachmentParams.builder() .setAuthor(user) .setIssue(issue) .setTemporaryAttachmentId(tempAttachment.getTemporaryAttachmentId()) .setFilename(tempAttachment.getFilename()) .setContentType(tempAttachment.getContentType()) .setFileSize(tempAttachment.getSize()) .setCreatedTime(tempAttachment.getCreated()) .build() ); return conversionResult.map(new Function<ChangeItemBean, ChangeItemBean>() { @Override public ChangeItemBean apply(@SuppressWarnings ("NullableProblems") final ChangeItemBean changeItemBean) { monitor.removeById(selectedAttachmentId); return changeItemBean; } }); } };