After looking at the logs we found that the exception occurred in "UPDATE INT_MESSAGE_GROUP set UPDATED_DATE=? where GROUP_KEY=? and REGION=?" But the error code thrown was '0', so spring integration class couldn't catch the proper exception and the exception was propagated to the top of hierarchy and got catched in super class Exception. So, we suspect that the issue was either in spring integration flow that it wasn't able to catch the uncategorized error or was it the PostgresDB which was culprit in throwing no error code.
It will be highly appreciable if I can get some help here. Please tell if anything else is required from my side.
I am attaching the detailed log captured in our code.
Here is the log printed :
{
"preview": false,
"offset": 913,
"result": {
"_raw": "{\"ts\":\"04 20 2022
03:10:25.763\",\"th\":\"task-scheduler-1\",\"falcon_host\":\"\",\"tenant\":\"\",\"user\":\"SysAdmin\",\"trxid\":\"469972d9-2f
c7-4525-aaaf-8e88ff4d5fa9\",\"level\":\"ERROR\",\"logger\":\"org.springframework.integration.handler.LoggingHandler\",\"msg\"
:\"org.springframework.messaging.MessageHandlingException: error occurred in message handler [bean
'org.springframework.integration.config.AggregatorFactoryBean#0' for component 'aggregator'; defined in: 'class path
resource [callbackProvisioning.xml]'; from source: ''int:aggregator' with id='aggregator'']; nested exception is
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [UPDATE
INT_MESSAGE_GROUP set UPDATED_DATE=? where GROUP_KEY=? and REGION=?]; SQL state [25P02]; error code [0]; ERROR: current
transaction is aborted, commands ignored until end of transaction block; nested exception is com.edb.util.PSQLException:
ERROR: current transaction is aborted, commands ignored until end of transaction block, failedMessage=GenericMessage
[payload=TenantProvisionRequestStatusDTO [id=1322507, name=null, tenantProvisionRequestId=103916, service=WFMDB, displayService=WFM Database, status=pending, displayProvisionStatus=Pending, creationDate=2022-04-20 03:10:00.359, modifyDate=2022-04-20 03:10:00.359, description=null, serviceId=-12, provisionJson=null, isRecoverable=true, retryCount=0, nextRetryTime=null, subStatus=null], headers={sequenceNumber=1, sequenceDetails=[[b8ed4772-5c4b-01c6-3453-6368b2b430d7, 2, 2]], requestType=callback, sequenceSize=2, correlationId=aab63e4c-9809-ad0d-62a9-d9c3c6750dca, id=cfc77b00-1d3f-88d9-5d10-d4b487763aed, timestamp=1650424222608}] at
org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192) at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:79)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:570)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:520)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:445)\\n\\tatorg.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:445) at org.springframework.integration.handler.AbstractMessageProducingHandler.doProduceOutput(AbstractMessageProducingHandler.java:319)
at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:267)
at org.springframework.integration.splitter.AbstractMessageSplitter.produceOutput(AbstractMessageSplitter.java:311)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:231)at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:140)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:62)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
at
org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:570)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:520)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.router.AbstractMessageRouter.doSend(AbstractMessageRouter.java:213)
at org.springframework.integration.router.AbstractMessageRouter.handleMessageInternal(AbstractMessageRouter.java:195)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:62)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:570)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:520)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:445) at org.springframework.integration.handler.AbstractMessageProducingHandler.doProduceOutput(AbstractMessageProducingHandler.java:319)
at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:267)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:23
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMess
ageHandler.java:140)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:62)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:570)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:520)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:445) at org.springframework.integration.handler.AbstractMessageProducingHandler.doProduceOutput(AbstractMessageProducingHandler.java:319)
at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:267)
at org.springframework.integration.splitter.AbstractMessageSplitter.produceOutput(AbstractMessageSplitter.java:311)
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:231)at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:140)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:62)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72) atorg.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:570)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:520)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
at org.springframework.integration.endpoint.SourcePollingChannelAdapter.handleMessage(SourcePollingChannelAdapter.java:196)
at org.springframework.integration.endpoint.AbstractPollingEndpoint.messageReceived(AbstractPollingEndpoint.java:444)
at org.springframework.integration.endpoint.AbstractPollingEndpoint.doPoll(AbstractPollingEndpoint.java:428)
at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at com.sun.proxy.$Proxy338.call(Unknown Source)
at org.springframework.integration.endpoint.AbstractPollingEndpoint.pollForMessage(AbstractPollingEndpoint.java:376)
at org.springframework.integration.endpoint.AbstractPollingEndpoint.lambda$null$3(AbstractPollingEndpoint.java:323)
at org.springframework.integration.util.ErrorHandlingTaskExecutor.lambda$execute$0(ErrorHandlingTaskExecutor.java:57)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:55)
at org.springframework.integration.endpoint.AbstractPollingEndpoint.lambda$createPoller$4(AbstractPollingEndpoint.java:320)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
java.lang.Thread.run(Thread.java:748)\\nCaused by: org.springframework.jdbc.UncategorizedSQLException:
PreparedStatementCallback; uncategorized SQLException for SQL [UPDATE INT_MESSAGE_GROUP set UPDATED_DATE=? where
GROUP_KEY=? and REGION=?]; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until
end of transaction block; nested exception is com.edb.util.PSQLException: ERROR: current transaction is aborted, commands
ignored until end of transaction block at
org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1542) at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:667) at
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960) at
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015) at
org.springframework.integration.jdbc.store.JdbcMessageStore.doUpdateMessageGroup(JdbcMessageStore.java:635) at
org.springframework.integration.jdbc.store.JdbcMessageStore.addMessagesToGroup(JdbcMessageStore.java:361) at
org.springframework.integration.store.AbstractMessageGroupStore.addMessageToGroup(AbstractMessageGroupStore.java:189)
at
org.springframework.integration.aggregator.AbstractCorrelatingMessageHandler.store(AbstractCorrelatingMessageHandler.java:780
)
at
org.springframework.integration.aggregator.AbstractCorrelatingMessageHandler.processMessageForGroup(AbstractCorrelatingMessag
eHandler.java:495)
at
org.springframework.integration.aggregator.AbstractCorrelatingMessageHandler.handleMessageInternal(AbstractCorrelatingMessage
Handler.java:474)
at
org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:62)\\n\\t... 119
more\\nCaused by: com.edb.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of
transaction block atcom.edb.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2759)
at
com.edb.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2376)
at
com.edb.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at
com.edb.jdbc.PgStatement.executeInternal(PgStatement.java:510)
at
com.edb.jdbc.PgStatement.execute(PgStatement.java:427)
at
com.edb.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:175)
at
com.edb.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:141)
at
sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.lang.reflect.Method.invoke(Method.java:498) at
org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.jav
a:237) atcom.sun.proxy.$Proxy290.executeUpdate(Unknown Source)
at
sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.lang.reflect.Method.invoke(Method.java:498) at
org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
at
com.sun.proxy.$Proxy290.executeUpdate(Unknown Source)
at
org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:965)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\\n\\t... 128 more\\nCaused by:
com.edb.util.PSQLException: ERROR: duplicate key value violates unique constraint \\\"message_group_pk\\\"\\n Detail: Key
(group_key, region)=(254b6008-0fd7-3c10-b142-2a2e4f1841d8, DEFAULT) already exists.
at
com.edb.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2759)
at
com.edb.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2376)
at
com.edb.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at
com.edb.jdbc.PgStatement.executeInternal(PgStatement.java:510)
at
com.edb.jdbc.PgStatement.execute(PgStatement.java:427) at
com.edb.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:175)
at
com.edb.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:141)
at
sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.jav
a:237) atcom.sun.proxy.$Proxy290.executeUpdate(Unknown Source)
at
sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.lang.reflect.Method.invoke(Method.java:498) at
org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
at
com.sun.proxy.$Proxy290.executeUpdate(Unknown Source)
at
org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:965)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)
at
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960)
at
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015)
at
org.springframework.integration.jdbc.store.JdbcMessageStore.doCreateMessageGroup(JdbcMessageStore.java:623)
at
org.springframework.integration.jdbc.store.JdbcMessageStore.addMessagesToGroup(JdbcMessageStore.java:357)\\n\\t... 124
more\\n\" }",
"_time": "2022-04-20T03:10:25.763+0000",
"date_hour": "3",
"date_mday": "20",
"date_minute": "10",
"date_month": "april",
"date_second": "25",
"date_wday": "wednesday",
"date_year": "2022",
"date_zone": "local",
"falcon_host": "",
"host": "cust01-gss01-tms10-app-1648100547-1.int.gss.mykronos.com",
"index": "cust-prd-wfd-tms-app",
"level": "ERROR",
"linecount": "1",
"logger": "org.springframework.integration.handler.LoggingHandler",
"msg": "org.springframework.messaging.MessageHandlingException: error occurred in message handler [bean 'org.springframework.integration.config.AggregatorFactoryBean#0' for component 'aggregator'; defined in: 'class path resource [callbackProvisioning.xml]'; from source: ''int:aggregator' with id='aggregator'']; nested exception is
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [UPDATE INT_MESSAGE_GROUP set UPDATED_DATE=? where GROUP_KEY=? and REGION=?]; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is
com.edb.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block, failedMessage=GenericMessage [payload=TenantProvisionRequestStatusDTO [id=1322507, name=null, tenantProvisionRequestId=103916, service=WFMDB, displayService=WFM Database, status=pending, displayProvisionStatus=Pending, creationDate=2022-04-20 03:10:00.359, modifyDate=2022-04-20 03:10:00.359, description=null, serviceId=-12, provisionJson=null, isRecoverable=true, retryCount=0, nextRetryTime=null, subStatus=null], headers={sequenceNumber=1, sequenceDetails=[[b8ed4772-5c4b-01c6-3453-6368b2b430d7, 2, 2]], requestType=callback, sequenceSize=2, correlationId=aab63e4c-9809-ad0d-62a9-d9c3c6750dca, id=cfc77b00-1d3f-88d9-5d10-d4b487763aed, timestamp=1650424222608}] org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192)
\more\n",
"source": "/data/tomcat/logs/tms.log",
"sourcetype": "tms:app",
"splunk_server": "cust01-prd01-log01-idx-210330-09.int.oss.mykronos.com",
"tenant": "",
"th": "task-scheduler-1",
"trxid": "469972d9-2fc7-4525-aaaf-8e88ff4d5fa9",
"ts": "04 20 2022 03:10:25.763",
"user": "SysAdmin"
}
}