CPS-1020 : DuplicatedYangResourceException error at parallel cmHandle registration 74/129474/2
authorsourabh_sourabh <sourabh.sourabh@est.tech>
Thu, 2 Jun 2022 12:54:09 +0000 (13:54 +0100)
committersourabh_sourabh <sourabh.sourabh@est.tech>
Thu, 2 Jun 2022 14:10:09 +0000 (15:10 +0100)
- @EnableRetry is added into application.
- Added retry count into log to add more information about retry.

Issue-ID: CPS-1020
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Change-Id: I00c58ef17a8c066f98711c1cf8e5e5cb5f22974b

cps-application/src/main/java/org/onap/cps/Application.java
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java

index ba707e9..79d5950 100644 (file)
@@ -22,7 +22,9 @@ package org.onap.cps;
 \r
 import org.springframework.boot.SpringApplication;\r
 import org.springframework.boot.autoconfigure.SpringBootApplication;\r
+import org.springframework.retry.annotation.EnableRetry;\r
 \r
+@EnableRetry\r
 @SpringBootApplication\r
 public class Application {\r
 \r
index 3719256..cbeb1b7 100755 (executable)
@@ -66,6 +66,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyIn
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.retry.annotation.Backoff;
 import org.springframework.retry.annotation.Retryable;
+import org.springframework.retry.support.RetrySynchronizationManager;
 import org.springframework.stereotype.Component;
 
 @Slf4j
@@ -219,9 +220,12 @@ public class CpsModulePersistenceServiceImpl implements CpsModulePersistenceServ
                         convertToDuplicatedYangResourceException(
                                 dataIntegrityViolationException, newYangResourceEntities);
                 convertedException.ifPresent(
-                    e ->  log.warn(
-                                "Cannot persist duplicated yang resource. "
-                                        + "System will attempt this method up to 5 times.", e));
+                        e -> {
+                            int retryCount = RetrySynchronizationManager.getContext() == null ? 0
+                                    : RetrySynchronizationManager.getContext().getRetryCount();
+                            log.warn("Cannot persist duplicated yang resource. System will attempt this method "
+                                    + "up to 5 times. Current retry count : {}", ++retryCount, e);
+                        });
                 throw convertedException.isPresent() ? convertedException.get() : dataIntegrityViolationException;
             }
         }