RED-6467: Added more debugging output
This commit is contained in:
parent
f4c53c722e
commit
fc642e82d2
@ -58,6 +58,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.TransactionDebugPrinter;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierAttributeConfig;
|
||||
@ -111,7 +112,12 @@ public class DossierTemplateImportService {
|
||||
@Transactional
|
||||
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Starting dossier template import");
|
||||
|
||||
ImportTemplateResult archiveResult = this.handleArchive(request);
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Extracted dossier template archive");
|
||||
|
||||
return this.importDossierTemplate(archiveResult);
|
||||
}
|
||||
|
||||
@ -288,12 +294,15 @@ public class DossierTemplateImportService {
|
||||
long start = System.currentTimeMillis();
|
||||
String dossierTemplateId;
|
||||
var dossierTemplateMeta = request.getDossierTemplate();
|
||||
|
||||
DossierTemplateEntity existingDossierTemplate = null;
|
||||
if (request.getDossierTemplateId() != null && request.isUpdateExistingTemplate()) {
|
||||
var dossierTemplateOptional = dossierTemplateRepository.findByIdAndNotDeleted(request.getDossierTemplateId());
|
||||
existingDossierTemplate = dossierTemplateOptional.orElse(null);
|
||||
}
|
||||
|
||||
if (existingDossierTemplate != null) {
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Existing dossier found, importing into it");
|
||||
dossierTemplateId = existingDossierTemplate.getId();
|
||||
// override the existing dossier template
|
||||
updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId());
|
||||
@ -303,9 +312,13 @@ public class DossierTemplateImportService {
|
||||
existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate)
|
||||
.name()));
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing colors");
|
||||
|
||||
// set colors
|
||||
this.setColors(dossierTemplateId, request.getColors());
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing watermarks");
|
||||
|
||||
// set watermarks
|
||||
if (CollectionUtils.isNotEmpty(request.getWatermarks())) {
|
||||
Set<String> toSetWatermarks = request.getWatermarks().stream().map(WatermarkModel::getName).filter(Objects::nonNull).collect(Collectors.toSet());
|
||||
@ -327,6 +340,8 @@ public class DossierTemplateImportService {
|
||||
configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId()));
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing dossier status");
|
||||
|
||||
// dossier status
|
||||
if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) {
|
||||
this.updateDossierStates(request, dossierTemplateId);
|
||||
@ -335,6 +350,8 @@ public class DossierTemplateImportService {
|
||||
currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null));
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing dossier attributes");
|
||||
|
||||
// update dossier attributes
|
||||
if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) {
|
||||
this.updateDossierAttributes(request, dossierTemplateId);
|
||||
@ -343,6 +360,8 @@ public class DossierTemplateImportService {
|
||||
currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId()));
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing file attributes");
|
||||
|
||||
//update file attributes
|
||||
if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) {
|
||||
this.updateFileAttributes(request, dossierTemplateId);
|
||||
@ -351,6 +370,8 @@ public class DossierTemplateImportService {
|
||||
currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId()));
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing types");
|
||||
|
||||
// update the types
|
||||
if (CollectionUtils.isNotEmpty(request.getTypes())) {
|
||||
this.updateTypes(request, dossierTemplateId);
|
||||
@ -363,6 +384,8 @@ public class DossierTemplateImportService {
|
||||
this.deleteTypes(currentTypes, new HashSet<>());
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing report templates");
|
||||
|
||||
//set report templates
|
||||
var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId);
|
||||
|
||||
@ -374,15 +397,20 @@ public class DossierTemplateImportService {
|
||||
reportsUpdated.add(report.getTemplateId());
|
||||
});
|
||||
}
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Delete reports");
|
||||
|
||||
// delete the reports that were not in the import
|
||||
existingReports.forEach(r -> {
|
||||
String storageId = r.getStorageId();
|
||||
if (!reportsUpdated.contains(r.getTemplateId())) {
|
||||
storageService.deleteObject(TenantContext.getTenantId(),storageId);
|
||||
storageService.deleteObject(TenantContext.getTenantId(), storageId);
|
||||
reportTemplatePersistenceService.delete(r.getTemplateId());
|
||||
}
|
||||
});
|
||||
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing legal basis");
|
||||
|
||||
// set legal basis
|
||||
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
|
||||
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
|
||||
@ -395,6 +423,7 @@ public class DossierTemplateImportService {
|
||||
}
|
||||
|
||||
} else {
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, "No existing dossier found, importing into new dossier");
|
||||
// creates new dossier template
|
||||
if (StringUtils.isEmpty(dossierTemplateMeta.getName())) {
|
||||
throw new ConflictException("DossierTemplate name must be set");
|
||||
|
||||
@ -8,9 +8,6 @@ import javax.persistence.EntityManager;
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
||||
@ -20,6 +17,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.TransactionDebugPrinter;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.jdbc.JDBCWriteUtils;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||
|
||||
@ -109,11 +107,7 @@ public class EntryPersistenceService {
|
||||
|
||||
var type = typeRepository.getById(typeId);
|
||||
|
||||
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
||||
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
|
||||
|
||||
log.info("Importing entries for typeEntity: {} type: {} -- transaction has rollback {}", type, dictionaryEntryType, status.isRollbackOnly());
|
||||
}
|
||||
TransactionDebugPrinter.printTransactionRollbackStatus(log, String.format("Importing entries for typeEntity: %s type: %s", typeId, dictionaryEntryType));
|
||||
|
||||
switch (dictionaryEntryType) {
|
||||
case ENTRY -> {
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.utils;
|
||||
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
@UtilityClass
|
||||
public class TransactionDebugPrinter {
|
||||
|
||||
public void printTransactionRollbackStatus(org.slf4j.Logger log, String message) {
|
||||
|
||||
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
||||
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
|
||||
|
||||
log.info(message + " -- transaction isRollbackOnly {}", status.isRollbackOnly());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user