Component - 1
@KafkaListner
public void method(){
service1.method1();
}
Service - 1
@Transactional
public void method1(){
service2.method2();
}
Service - 2
@Transactional
@Retry(Exception.class,3)
public void method2(){
some logic ,may produce an exception
}
Expected : The retry happens three times
Actual : The retry is not happening .
org.springframework.kafka.KafkaException: Seek to current after exception; nested exception is org.springframework.kafka.listener.ListenerExecutionFailedException: Listener method 'public void iesd.devops.monitoring.consumer.qualitygates.QualityGateTestExecutionEventsConsumer.testExecutionEventsListener(org.apache.kafka.clients.consumer.ConsumerRecord<java.lang.String, iesd.devops.monitoring.entity.qualitygates.TestExecutionEvent>)' threw exception; nested exception is javax.persistence.OptimisticLockException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [iesd.devops.monitoring.entity.qualitygates.gates.testgates.TestGatePayload#1]; nested exception is javax.persistence.OptimisticLockException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [iesd.devops.monitoring.entity.qualitygates.gates.testgates.TestGatePayload#1] at org.springframework.kafka.listener.SeekUtils.seekOrRecover(SeekUtils.java:208) ~[spring-kafka-2.9.0.jar:2.9.0] at org.springframework.kafka.listener.DefaultErrorHandler.handleRemaining(DefaultErrorHandler.java:169) ~[spring-kafka-2.9.0.jar:2.9.0] at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeErrorHandler(KafkaMessageListenerContainer.java:2817) ~[spring-kafka-2.9.0.jar:2.9.0]
instead of
ObjectOptimisticLockingException