diff --git a/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java b/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java index d76c320..28dad71 100644 --- a/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java +++ b/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java @@ -6,8 +6,6 @@ import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.FileStatus; import ru.soune.nocopy.entity.file.FileUploadSession; -import java.io.IOException; - public interface FileUploadService { FileUploadSession initUpload(Long userId, String fileName, String fileType, String extension, String convertTo, long fileSize); @@ -20,5 +18,5 @@ public interface FileUploadService { UploadProgressResponse getUploadProgress(String uploadId); - FileEntity completeFileProcessingAsync(FileUploadSession session, FileStatus status); + FileEntity completeFileProcessing(FileUploadSession session, FileStatus status); } diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index af9f173..5833a97 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -226,11 +226,9 @@ public class FileUploadServiceImpl implements FileUploadService { return UploadProgressResponse.fromSession(session); } - @Async("fileUploadTaskExecutor") @Transactional @Override - public FileEntity completeFileProcessingAsync(FileUploadSession session, FileStatus status) { - FileEntity saved = null; + public FileEntity completeFileProcessing(FileUploadSession session, FileStatus status) { try { Path filePath = Paths.get(session.getFilePath()); String checksum = calculateChecksum(filePath); @@ -249,11 +247,10 @@ public class FileUploadServiceImpl implements FileUploadService { .status(status) .build(); - saved = fileEntityRepository.save(fileEntity); + FileEntity saved = fileEntityRepository.save(fileEntity); if (session.getFileType().equals("image")) { Map hash = imageHashService.calculateHash(filePath); - imageHashService.create(saved, hash); } @@ -261,17 +258,17 @@ public class FileUploadServiceImpl implements FileUploadService { if (status != FileStatus.TEMP) { FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, session.getConvertTo()); - noCopyFileService.addFile(fileInfo); } log.info("File processing completed for session: {}", session.getUploadId()); + return saved; + } catch (Exception e) { log.error("Failed to complete file processing for session {}: {}", session.getUploadId(), e.getMessage(), e); + throw new FileUploadException("Failed to complete file processing", e); } - - return saved; } private void validateSession(FileUploadSession session) { @@ -386,11 +383,7 @@ public class FileUploadServiceImpl implements FileUploadService { fileEntityService.clearTempFiles(session.getUserId()); } - FileEntity fileEntity = completeFileProcessingAsync(session, status); - - fileEntityRepository.flush(); - - entityManager.clear(); + FileEntity fileEntity = completeFileProcessing(session, status); cloudStorageService.saveFilesToStorage(fileEntity.getMimeType(), fileEntity.getFileExtension(), fileEntity.getFilePath());