RED-7326 - Backport fileSize fix

This commit is contained in:
Andrei Isvoran 2023-10-05 16:28:46 +02:00 committed by Kilian Schüttler
parent 9a3921ed55
commit 829132199e
7 changed files with 13 additions and 10 deletions

View File

@ -20,5 +20,6 @@ public class AddFileRequest {
@NonNull
private String dossierId;
private String uploader;
private long fileSize;
}

View File

@ -39,7 +39,7 @@ public class FileStatusPersistenceService {
private final DossierPersistenceService dossierService;
public void createStatus(String dossierId, String fileId, String filename, String uploader) {
public void createStatus(String dossierId, String fileId, String filename, String uploader, long fileSize) {
OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
FileEntity file = new FileEntity();
@ -55,6 +55,7 @@ public class FileStatusPersistenceService {
file.setLastUpdated(now);
file.setFileManipulationDate(now);
file.setProcessingErrorCounter(0);
file.setFileSize(fileSize);
fileRepository.save(file);
}
@ -65,11 +66,12 @@ public class FileStatusPersistenceService {
if (isFileDeleted(fileId)) {
return;
}
log.info("File " + fileId + " has been optimized with file size " + fileSize);
fileRepository.updateProcessingStatus(fileId,
ProcessingStatus.PRE_PROCESSED,
OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS),
hasHighlights,
fileSize,
calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED));
}

View File

@ -73,8 +73,8 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
@Modifying(clearAutomatically = true)
@Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hasHighlights = :hasHighlights, f.fileSize = :fileSize, f.processingErrorCounter = :processingErrorCounter " + " where f.id = :fileId")
void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, long fileSize, int processingErrorCounter);
@Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hasHighlights = :hasHighlights, f.processingErrorCounter = :processingErrorCounter " + " where f.id = :fileId")
void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, int processingErrorCounter);
@Modifying(clearAutomatically = true)

View File

@ -71,7 +71,7 @@ public class FileService {
} else {
// the file is new, should create a new status for it.
log.info("File {} has no status yet, creating one and setting to unprocessed.", request.getFilename());
fileStatusService.createStatus(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename());
fileStatusService.createStatus(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename(), request.getFileSize());
}
return new JSONPrimitive<>(request.getFileId());

View File

@ -278,9 +278,9 @@ public class FileStatusService {
@Transactional
public void createStatus(String dossierId, String fileId, String uploader, String filename) {
public void createStatus(String dossierId, String fileId, String uploader, String filename, long fileSize) {
fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader);
fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader, fileSize);
addToAnalysisQueue(dossierId, fileId, false, Set.of(), false);
}

View File

@ -74,7 +74,7 @@ public class FileTesterAndProvider {
var fileId = Base64.encodeBase64String((dossier.getId() + fileName).getBytes(StandardCharsets.UTF_8));
AddFileRequest upload = new AddFileRequest(fileName, fileId, dossier.getId(), "1");
AddFileRequest upload = new AddFileRequest(fileName, fileId, dossier.getId(), "1", 1);
fileManagementStorageService.storeObject(dossier.getId(), fileId, FileType.UNTOUCHED, new ByteArrayInputStream("test".getBytes(StandardCharsets.UTF_8)));
JSONPrimitive<String> uploadResult = uploadClient.upload(upload, false);

View File

@ -136,7 +136,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
assertThat(viewedPages.size()).isEqualTo(1);
AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1");
AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1", 1);
JSONPrimitive<String> uploadResult = uploadClient.upload(upload, false);
loadedFile = fileClient.getFileStatus(dossier.getId(), uploadResult.getValue());
@ -174,7 +174,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
assertThat(viewedPages).hasSize(1);
AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1");
AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1", 1);
JSONPrimitive<String> uploadResult = uploadClient.upload(upload, true);
loadedFile = fileClient.getFileStatus(dossier.getId(), uploadResult.getValue());