From e9861a8f4ac986157e6558baff79d9556bffda6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Thu, 1 Aug 2024 11:08:47 +0200 Subject: [PATCH] RED-9255: Fixed possible higher versions in entityLogs than in dictionaries or rules when importing existing dossier templates --- .../dataexchange/service/EntityTypeImportService.java | 6 +++++- .../service/persistence/RulesPersistenceService.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java index d49aab522..6e89e29da 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java @@ -79,7 +79,11 @@ public class EntityTypeImportService { typeId = returnedType.getTypeId(); } - dictionaryPersistenceService.setVersion(typeId, type.getVersion()); + + // Setting dictionary version for an existing dossierTemplate can break the analysis dictionary logic, + // when files have newer dictionary versions set in entity log. This will lead to endless analysis. + // Do not call this: + // dictionaryPersistenceService.setVersion(typeId, type.getVersion()); typeIdsAdded.add(typeId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java index 6aa0b050c..cc80d2b39 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java @@ -146,7 +146,7 @@ public class RulesPersistenceService { ruleSet.setDossierTemplateId(dossierTemplateId); ruleSet.setRuleFileType(ruleFileType.name()); ruleSet.setValue(rules); - ruleSet.setVersion(version); + ruleSet.setVersion(ruleSet.getVersion() + 1); // Setting rules version in existing dossier template will break analysis, if there are files with higher versions in entity log. So only increment. ruleSet.setTimeoutDetected(timeoutDetected); }, () -> { RuleSetEntity ruleSet = new RuleSetEntity(); -- 2.47.2