Hi, I am not sure if you got a chance to go though my email....as i stated there i intentionally did that as a test for one of the inserts to fail to verify if the entire transaction involving inserts to two tables gets rolled back both in the cache & in the DB. As i observed it doesn't seem to work that way & there is a dangling entry in the first table.
Regards, Muthu On Thu, Jun 22, 2017 at 1:13 PM, fatih tekin <[email protected]> wrote: > Because you are trying to insert employee with same name and you do have > constraint for it . > Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value > violates unique constraint "dcm_emp_ename" > Detail: Key (ename)=(Jacky) already exists. > > On Thu, Jun 22, 2017 at 8:35 PM, Muthu <[email protected]> wrote: > >> Hello Folks, >> >> I tried the Ignite spring transactions integration by using >> *CacheSpringStoreSessionL**istener* (i used it with Ignite web console >> based Automatic Persistence). >> >> I see that Transactional writes seems to fail & does not seem to work as >> expected (one table/cache was inserted while another wasn't when both were >> in a transaction annotated with @Transactional. (In the below example for >> my test input one of the 'Emp' object inserts would fail on the DB & this >> should have caused the cache & table to rollback for both 'Dept' & 'Emp', >> but i see the partial entry for 'Dept' in DB). >> >> Anyone who was tried & got this working?.....it would be good to have >> this working.. >> >> Below is the code fragment, >> >> >> *@Transactional* >> *public Boolean insertDepartmentWithEmployees(Dept dept, List<Emp> >> empList) {* >> * Boolean ret = true;* >> * try {* >> * System.out.println("==== in >> ObjectCacheMgrService.insertDepartmentWithEmployees ==== for dept : " + >> dept);* >> * String uUID = new IgniteUuid(UUID.randomUUID(), >> igniteAtomicSequence.incrementAndGet()).toString();* >> * dept.setId(uUID);* >> * deptCache.getAndPut(uUID, dept);* >> * System.out.println("==== in >> ObjectCacheMgrService.insertDepartmentWithEmployees : department ==== >> inserted succesfully : " + dept);* >> * for (Emp emp : empList) {* >> * uUID = new IgniteUuid(UUID.randomUUID(), >> igniteAtomicSequence.incrementAndGet()).toString();* >> * emp.setId(uUID);* >> * emp.setDeptid(dept.getId());* >> * empCache.getAndPut(uUID, emp);* >> * System.out.println("==== in >> ObjectCacheMgrService.insertDepartmentWithEmployees : employee ==== >> inserted succesfully : " + emp);* >> * }* >> * } catch (Exception e) {* >> * System.out.println("==== EXCEPTION in >> ObjectCacheMgrService.insertDepartmentWithEmployees ==== message is : " + >> e.getMessage());* >> * System.out.println("==== EXCEPTION in >> ObjectCacheMgrService.insertDepartmentWithEmployees ==== class is : " + >> e.getClass().getName());* >> * e.printStackTrace();* >> * ret = false;* >> * }* >> * return ret;* >> *}* >> >> Below is the CacheSpringStoreSessionListener config segment, >> >> * <!-- Postgresql datasource -->* >> * <bean id="dataSource" >> class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">* >> * <property name="driverClassName" value="${db.driverClassName}" >> />* >> * <property name="url" value="${db.url}" />* >> * <property name="username" value="${db.username}" />* >> * <property name="password" value="${db.password}" />* >> * <property name="removeAbandonedOnBorrow" value="true"/>* >> * <property name="initialSize" value="10" />* >> * <property name="maxTotal" value="20" />* >> * <property name="maxIdle" value="5" />* >> * <property name="minIdle" value="0" />* >> * <property name="maxWaitMillis" value="90000" />* >> * <property name="minEvictableIdleTimeMillis" value="900000" />* >> * <property name="softMinEvictableIdleTimeMillis" value="900000" />* >> * <property name="validationQuery" value="select 1" />* >> * <property name="validationQueryTimeout" value="90" />* >> * <property name="defaultTransactionIsolation" value="1" />* >> * </bean>* >> >> * <!-- For transaction manager, using DataSourceTransactionManager" >> since we are using JDBC local tx -->* >> * <bean id="transactionManager" >> class="org.springframework.jdbc.datasource.DataSourceTransactionManager">* >> * <property name="dataSource" ref="dataSource" />* >> * <property name="defaultTimeout" value="300" />* >> * </bean>* >> <!-- enable transaction demarcation with annotations --> >> <tx:annotation-driven /> >> >> * <property name="CacheStoreSessionListenerFactories">* >> * <list>* >> * <bean >> class="javax.cache.configuration.FactoryBuilder$SingletonFactory">* >> * <constructor-arg>* >> * <bean >> class="org.apache.ignite.cache.store.spring.CacheSpringStoreSessionListener">* >> * <!-- Inject transaction manager. -->* >> * <property name="transactionManager" >> ref="transactionManager"/>* >> * </bean>* >> * </constructor-arg>* >> * </bean>* >> * </list>* >> * </property>* >> >> >> Below is the exception (*RunTimeException subclass only*) stack trace >> showing one of the 'Emp' object inserts failing & the rollback..but the db >> 'Dept' table still has the 'Dept' entry that was made first as part of the >> transaction as shown in the above code), >> >> ==== EXCEPTION in ObjectCacheMgrService.insertDepartmentWithEmployees >> ==== class is : javax.cache.integration.CacheWriterException >> javax.cache.integration.CacheWriterException: class >> org.apache.ignite.transactions.TransactionRollbackException: Transaction >> has been rolled back: b5584ef8c51-00000000-0678-3b15-0000-000000000001 >> at org.apache.ignite.internal.processors.cache.GridCacheUtils.c >> onvertToCacheException(GridCacheUtils.java:1404) >> at org.apache.ignite.internal.processors.cache.IgniteCacheProxy >> .cacheException(IgniteCacheProxy.java:2641) >> at org.apache.ignite.internal.processors.cache.IgniteCacheProxy >> .getAndPut(IgniteCacheProxy.java:1589) >> at com.brocade.dcm.server.service.ObjectCacheMgrService.insertD >> epartmentWithEmployees(ObjectCacheMgrService.java:101) >> at com.brocade.dcm.server.service.ObjectCacheMgrService$$FastCl >> assBySpringCGLIB$$2d159c39.invoke(<generated>) >> at org.springframework.cglib.proxy.MethodProxy.invoke(MethodPro >> xy.java:204) >> at org.springframework.aop.framework.CglibAopProxy$CglibMethodI >> nvocation.invokeJoinpoint(CglibAopProxy.java:721) >> at org.springframework.aop.framework.ReflectiveMethodInvocation >> .proceed(ReflectiveMethodInvocation.java:157) >> at org.springframework.transaction.interceptor.TransactionInter >> ceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) >> at org.springframework.transaction.interceptor.TransactionAspec >> tSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) >> at org.springframework.transaction.interceptor.TransactionInter >> ceptor.invoke(TransactionInterceptor.java:96) >> at org.springframework.aop.framework.ReflectiveMethodInvocation >> .proceed(ReflectiveMethodInvocation.java:179) >> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvis >> edInterceptor.intercept(CglibAopProxy.java:656) >> at com.brocade.dcm.server.service.ObjectCacheMgrService$$Enhanc >> erBySpringCGLIB$$592efdc.insertDepartmentWithEmployees(<generated>) >> at com.brocade.dcm.server.controller.ObjectCacheMgrServiceContr >> oller.putPost(ObjectCacheMgrServiceController.java:24) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >> Source) >> at java.lang.reflect.Method.invoke(Unknown Source) >> at org.springframework.web.method.support.InvocableHandlerMetho >> d.doInvoke(InvocableHandlerMethod.java:205) >> at org.springframework.web.method.support.InvocableHandlerMetho >> d.invokeForRequest(InvocableHandlerMethod.java:133) >> at org.springframework.web.servlet.mvc.method.annotation.Servle >> tInvocableHandlerMethod.invokeAndHandle(ServletInvocableHand >> lerMethod.java:116) >> at org.springframework.web.servlet.mvc.method.annotation.Reques >> tMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHan >> dlerAdapter.java:827) >> at org.springframework.web.servlet.mvc.method.annotation.Reques >> tMappingHandlerAdapter.handleInternal(RequestMappingHandlerA >> dapter.java:738) >> at org.springframework.web.servlet.mvc.method.AbstractHandlerMe >> thodAdapter.handle(AbstractHandlerMethodAdapter.java:85) >> at org.springframework.web.servlet.DispatcherServlet.doDispatch >> (DispatcherServlet.java:963) >> at org.springframework.web.servlet.DispatcherServlet.doService( >> DispatcherServlet.java:897) >> at org.springframework.web.servlet.FrameworkServlet.processRequ >> est(FrameworkServlet.java:970) >> at org.springframework.web.servlet.FrameworkServlet.doPost(Fram >> eworkServlet.java:872) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) >> at org.springframework.web.servlet.FrameworkServlet.service(Fra >> meworkServlet.java:846) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:230) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >> r.java:52) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.RequestContextFilter.doFilter >> Internal(RequestContextFilter.java:99) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.HttpPutFormContentFilter.doFi >> lterInternal(HttpPutFormContentFilter.java:105) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.HiddenHttpMethodFilter.doFilt >> erInternal(HiddenHttpMethodFilter.java:81) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.CharacterEncodingFilter.doFil >> terInternal(CharacterEncodingFilter.java:197) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >> dWrapperValve.java:198) >> at org.apache.catalina.core.StandardContextValve.invoke(Standar >> dContextValve.java:96) >> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >> uthenticatorBase.java:474) >> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >> stValve.java:140) >> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >> rtValve.java:79) >> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >> EngineValve.java:87) >> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >> apter.java:349) >> at org.apache.coyote.http11.Http11Processor.service(Http11Proce >> ssor.java:783) >> at org.apache.coyote.AbstractProcessorLight.process(AbstractPro >> cessorLight.java:66) >> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process >> (AbstractProtocol.java:798) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.do >> Run(NioEndpoint.java:1434) >> at org.apache.tomcat.util.net.SocketProcessorBase.run(Socket >> ProcessorBase.java:49) >> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >> Source) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >> Source) >> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >> un(TaskThread.java:61) >> at java.lang.Thread.run(Unknown Source) >> Caused by: class org.apache.ignite.transactions.TransactionRollbackException: >> Transaction has been rolled back: b5584ef8c51-00000000-0678-3b15 >> -0000-000000000001 >> at org.apache.ignite.internal.util.IgniteUtils$11.apply(IgniteU >> tils.java:843) >> at org.apache.ignite.internal.util.IgniteUtils$11.apply(IgniteU >> tils.java:841) >> at org.apache.ignite.internal.util.IgniteUtils.convertException >> NoWrap(IgniteUtils.java:911) >> ... 69 more >> Caused by: class org.apache.ignite.internal.tra >> nsactions.IgniteTxRollbackCheckedException: Transaction has been rolled >> back: b5584ef8c51-00000000-0678-3b15-0000-000000000001 >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> .syncOp(GridCacheAdapter.java:4054) >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> .getAndPut0(GridCacheAdapter.java:2259) >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> .getAndPut(GridCacheAdapter.java:2242) >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> .getAndPut(GridCacheAdapter.java:2221) >> at org.apache.ignite.internal.processors.cache.IgniteCacheProxy >> .getAndPut(IgniteCacheProxy.java:1582) >> ... 66 more >> Caused by: class org.apache.ignite.IgniteCheckedException: Failed update >> entry in database [table=dcm.emp, entry=Entry >> [key=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc, >> val=com.brocade.dcm.domain.model. >> Emp [idHash=693577784, hash=1434265603, >> id=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc, >> ename=Jacky, job=SDEV1, mgr=2, hiredate=2017-05-28, sal=100000, comm=50000, >> deptid=90594ef8c51-45a6457b-518e-473c- >> aecc-7348b1ed31a5]]] >> at org.apache.ignite.internal.processors.cache.store.GridCacheS >> toreManagerAdapter.put(GridCacheStoreManagerAdapter.java:576) >> at org.apache.ignite.internal.processors.cache.store.GridCacheS >> toreManagerAdapter.putAll(GridCacheStoreManagerAdapter.java:609) >> at org.apache.ignite.internal.processors.cache.transactions.Ign >> iteTxAdapter.batchStoreCommit(IgniteTxAdapter.java:1326) >> at org.apache.ignite.internal.processors.cache.transactions.Ign >> iteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:500) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal.localFinish(GridNearTxLocal.java:3021) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:405) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal$16.apply(GridNearTxLocal.java:3171) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal$16.apply(GridNearTxLocal.java:3163) >> at org.apache.ignite.internal.util.future.GridFutureAdapter.not >> ifyListener(GridFutureAdapter.java:382) >> at org.apache.ignite.internal.util.future.GridFutureAdapter.lis >> ten(GridFutureAdapter.java:352) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3163) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal.optimisticPutFuture(GridNearTxLocal.java:2373) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal.putAsync0(GridNearTxLocal.java:623) >> at org.apache.ignite.internal.processors.cache.distributed.near >> .GridNearTxLocal.putAsync(GridNearTxLocal.java:386) >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> $20.op(GridCacheAdapter.java:2261) >> at org.apache.ignite.internal.processors.cache.GridCacheAdapter >> .syncOp(GridCacheAdapter.java:4040) >> ... 70 more >> Caused by: javax.cache.integration.CacheWriterException: Failed update >> entry in database [table=dcm.emp, entry=Entry >> [key=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc, >> val=com.brocade.dcm.domain.model.Em >> p [idHash=693577784, hash=1434265603, >> id=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc, >> ename=Jacky, job=SDEV1, mgr=2, hiredate=2017-05-28, sal=100000, comm=50000, >> deptid=90594ef8c51-45a6457b-518e-473c-ae >> cc-7348b1ed31a5]]] >> at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.wr >> iteUpsert(CacheAbstractJdbcStore.java:955) >> at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.wr >> ite(CacheAbstractJdbcStore.java:1006) >> at org.apache.ignite.internal.processors.cache.store.GridCacheS >> toreManagerAdapter.put(GridCacheStoreManagerAdapter.java:568) >> ... 85 more >> Caused by: org.postgresql.util.PSQLException: ERROR: current transaction >> is aborted, commands ignored until end of transaction block >> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorRespons >> e(QueryExecutorImpl.java:2476) >> at org.postgresql.core.v3.QueryExecutorImpl.processResults(Quer >> yExecutorImpl.java:2189) >> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecut >> orImpl.java:300) >> at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement. >> java:428) >> at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) >> at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgP >> reparedStatement.java:169) >> at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPrep >> aredStatement.java:136) >> at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute >> Update(DelegatingPreparedStatement.java:98) >> at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute >> Update(DelegatingPreparedStatement.java:98) >> at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.wr >> iteUpsert(CacheAbstractJdbcStore.java:902) >> ... 87 more >> Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value >> violates unique constraint "dcm_emp_ename" >> Detail: Key (ename)=(Jacky) already exists. >> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorRespons >> e(QueryExecutorImpl.java:2476) >> at org.postgresql.core.v3.QueryExecutorImpl.processResults(Quer >> yExecutorImpl.java:2189) >> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecut >> orImpl.java:300) >> at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement. >> java:428) >> at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) >> at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgP >> reparedStatement.java:169) >> at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPrep >> aredStatement.java:136) >> at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute >> Update(DelegatingPreparedStatement.java:98) >> at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute >> Update(DelegatingPreparedStatement.java:98) >> at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.wr >> iteUpsert(CacheAbstractJdbcStore.java:908) >> ... 87 more >> Jun 09, 2017 7:46:19 PM org.apache.catalina.core.StandardWrapperValve >> invoke >> SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with >> path [] threw exception [Request processing failed; nested exception is >> org.springframework.transaction.UnexpectedRollbackException: >> Transaction rolled back because it has been marked as rollback-only] with >> root cause >> org.springframework.transaction.UnexpectedRollbackException: Transaction >> rolled back because it has been marked as rollback-only >> at org.springframework.transaction.support.AbstractPlatformTran >> sactionManager.commit(AbstractPlatformTransactionManager.java:724) >> at org.springframework.transaction.interceptor.TransactionAspec >> tSupport.commitTransactionAfterReturning(TransactionAspectSu >> pport.java:504) >> at org.springframework.transaction.interceptor.TransactionAspec >> tSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) >> at org.springframework.transaction.interceptor.TransactionInter >> ceptor.invoke(TransactionInterceptor.java:96) >> at org.springframework.aop.framework.ReflectiveMethodInvocation >> .proceed(ReflectiveMethodInvocation.java:179) >> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvis >> edInterceptor.intercept(CglibAopProxy.java:656) >> at com.brocade.dcm.server.service.ObjectCacheMgrService$$Enhanc >> erBySpringCGLIB$$592efdc.insertDepartmentWithEmployees(<generated>) >> at com.brocade.dcm.server.controller.ObjectCacheMgrServiceContr >> oller.putPost(ObjectCacheMgrServiceController.java:24) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >> Source) >> at java.lang.reflect.Method.invoke(Unknown Source) >> at org.springframework.web.method.support.InvocableHandlerMetho >> d.doInvoke(InvocableHandlerMethod.java:205) >> at org.springframework.web.method.support.InvocableHandlerMetho >> d.invokeForRequest(InvocableHandlerMethod.java:133) >> at org.springframework.web.servlet.mvc.method.annotation.Servle >> tInvocableHandlerMethod.invokeAndHandle(ServletInvocableHand >> lerMethod.java:116) >> at org.springframework.web.servlet.mvc.method.annotation.Reques >> tMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHan >> dlerAdapter.java:827) >> at org.springframework.web.servlet.mvc.method.annotation.Reques >> tMappingHandlerAdapter.handleInternal(RequestMappingHandlerA >> dapter.java:738) >> at org.springframework.web.servlet.mvc.method.AbstractHandlerMe >> thodAdapter.handle(AbstractHandlerMethodAdapter.java:85) >> at org.springframework.web.servlet.DispatcherServlet.doDispatch >> (DispatcherServlet.java:963) >> at org.springframework.web.servlet.DispatcherServlet.doService( >> DispatcherServlet.java:897) >> at org.springframework.web.servlet.FrameworkServlet.processRequ >> est(FrameworkServlet.java:970) >> at org.springframework.web.servlet.FrameworkServlet.doPost(Fram >> eworkServlet.java:872) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) >> at org.springframework.web.servlet.FrameworkServlet.service(Fra >> meworkServlet.java:846) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:230) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >> r.java:52) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.RequestContextFilter.doFilter >> Internal(RequestContextFilter.java:99) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.HttpPutFormContentFilter.doFi >> lterInternal(HttpPutFormContentFilter.java:105) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.HiddenHttpMethodFilter.doFilt >> erInternal(HiddenHttpMethodFilter.java:81) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.springframework.web.filter.CharacterEncodingFilter.doFil >> terInternal(CharacterEncodingFilter.java:197) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:107) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:192) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:165) >> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >> dWrapperValve.java:198) >> at org.apache.catalina.core.StandardContextValve.invoke(Standar >> dContextValve.java:96) >> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >> uthenticatorBase.java:474) >> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >> stValve.java:140) >> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >> rtValve.java:79) >> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >> EngineValve.java:87) >> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >> apter.java:349) >> at org.apache.coyote.http11.Http11Processor.service(Http11Proce >> ssor.java:783) >> at org.apache.coyote.AbstractProcessorLight.process(AbstractPro >> cessorLight.java:66) >> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process >> (AbstractProtocol.java:798) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.do >> Run(NioEndpoint.java:1434) >> at org.apache.tomcat.util.net.SocketProcessorBase.run(Socket >> ProcessorBase.java:49) >> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >> Source) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >> Source) >> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >> un(TaskThread.java:61) >> at java.lang.Thread.run(Unknown Source) >> >> Regards, >> Muthu >> > >
