diff --git a/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts index bcbcfa8cf..61ab001b6 100644 --- a/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts @@ -45,6 +45,8 @@ tasks.named("test") { reports { junitXml.outputLocation.set(layout.buildDirectory.dir("reports/junit")) } + minHeapSize = "512m" + maxHeapSize = "2048m" } tasks.test { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java index 94ca90f05..566bc474f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java @@ -124,14 +124,14 @@ public class AnalysisFlagsCalculationService { } - log.info("Flag Calculations for file: {} took: {}ms", fileId, System.currentTimeMillis() - startTime); + log.debug("Flag Calculations for file: {} took: {}ms", fileId, System.currentTimeMillis() - startTime); if (file.isHasRedactions() == hasRedactions && file.isHasHints() == hasHints && file.isHasImages() == hasImages && file.isHasSuggestions() == hasSuggestions && file.isHasAnnotationComments() == hasComments && file.isHasUpdates() == hasUpdates) { - log.info("Nothing Changed for file: {}", fileId); + log.debug("Nothing Changed for file: {}", fileId); } else { fileStatusPersistenceService.updateFlags(fileId, hasRedactions, hasHints, hasImages, hasSuggestions, hasComments, hasUpdates); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java index 8f1cf4821..eaca681b5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java @@ -266,7 +266,14 @@ public class FileStatusService { fileModel = reanalysisRequiredStatusService.enhanceFileStatusWithAnalysisRequirements(fileModel, true); var dossierTemplate = dossier.getDossierTemplate(); - if (dossierTemplate.isOcrByDefault() && fileModel.getOcrEndTime() == null && !fileModel.isSoftOrHardDeleted()) { + if (dossierTemplate.isOcrByDefault()// + && fileModel.getOcrEndTime() == null // + && !fileModel.isSoftOrHardDeleted()) { + + if (ocrIsRunning(fileModel)) { + return; + } + log.info("Add file: {} from dossier {} to OCR queue", fileId, dossierId); setStatusOcrQueued(dossierId, fileId); sendReadOnlyAnalysisEvent(dossierId, fileId, fileEntity); @@ -304,6 +311,7 @@ public class FileStatusService { sendReadOnlyAnalysisEvent(dossierId, fileId, fileEntity); return; } + if (settings.isAzureNerServiceEnabled() && !fileManagementStorageService.objectExists(dossierId, fileId, FileType.AZURE_NER_ENTITIES)) { log.info("Add file: {} from dossier {} to AZURE NER queue", fileId, dossierId); addToAzureNerQueue(dossierId, fileId); @@ -357,6 +365,13 @@ public class FileStatusService { } + private static boolean ocrIsRunning(FileModel fileModel) { + + return fileModel.getProcessingStatus().equals(ProcessingStatus.OCR_PROCESSING_QUEUED) // + || fileModel.getProcessingStatus().equals(ProcessingStatus.OCR_PROCESSING); + } + + private void sendAnalysisEvent(String dossierId, String fileId, FileEntity fileEntity) { if (fileEntity.getProcessingStatus().equals(ProcessingStatus.UNPROCESSED) @@ -823,6 +838,7 @@ public class FileStatusService { fileManagementStorageService.deleteObject(dossierId, fileId, FileType.DOCUMENT_STRUCTURE); fileManagementStorageService.deleteObject(dossierId, fileId, FileType.NER_ENTITIES); fileManagementStorageService.deleteObject(dossierId, fileId, FileType.LLM_NER_ENTITIES); + fileManagementStorageService.deleteObject(dossierId, fileId, FileType.AZURE_NER_ENTITIES); } addToAnalysisQueue(dossierId, fileId, priority, Sets.newHashSet(), false); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java index 0857d3115..b4394b0d1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java @@ -152,16 +152,16 @@ public class ReanalysisRequiredStatusService { if (reanalysisRequired || fullAnalysisRequired) { - log.info(buildMessage(fileStatus, - rulesVersionMatches, - dossierTemplateVersions, - componentRulesVersionMatches, - dictionaryVersionMatches, - legalBasisVersionMatches, - dossierDictionaryVersionMatches, - dossierDictionaryVersion, - mappingVersionAllMatch, - componentMappingVersions)); + log.debug(buildMessage(fileStatus, + rulesVersionMatches, + dossierTemplateVersions, + componentRulesVersionMatches, + dictionaryVersionMatches, + legalBasisVersionMatches, + dossierDictionaryVersionMatches, + dossierDictionaryVersion, + mappingVersionAllMatch, + componentMappingVersions)); } return new AnalysisRequiredResult(reanalysisRequired, fullAnalysisRequired);