I cannot remember exactly but I think it was in 2.20. The startup fix was backported to 2.25, 2.26.
regards, Lars On Tue, Feb 14, 2017 at 11:33 PM, Lorill Crees <[email protected]> wrote: > Thanks for the quick response Lars. > > In which version was it removed? We are managing multiple instances on > different versions and I just want to make sure we remove it from the right > ones. > > Thanks! > > On Tue, Feb 14, 2017 at 2:20 PM, Lars Helge Øverland <[email protected]> > wrote: > >> Hi Lorill, >> >> this happens due to a lingering legacy database table. We will include a >> startup statement to remove it. In the meantime you can run this SQL >> against your database: >> >> drop table caseaggregationcondition; >> >> regards, >> >> Lars >> >> >> On Tue, Feb 14, 2017 at 11:10 PM, Lorill Crees <[email protected]> wrote: >> >>> Hi Lars, >>> >>> I am attempting to delete a data element via the API and am getting the >>> below error, due to a foreign key constraint on table >>> "caseaggregationcondition". >>> >>> What are CaseAggregationConditions and where are they in the DHIS 2 UI? >>> >>> In your prior email to Channara you said that "If you upgrade to a later >>> version of DHIS 2, those have been removed completely." >>> >>> Which version has these removed completely? We are using DHIS 2 Version: >>> 2.25 >>> Build revision: >>> a143100 >>> Build date: >>> 2017-02-07 14:28 >>> >>> If they have not been removed in 2.25, how can we delete them via the >>> Web API? >>> >>> Thanks, >>> >>> Lorill >>> >>> >>> >>> * ERROR 2017-02-14 13:25:49,092 ERROR: update or delete on table >>> "dataelement" violates foreign key constraint >>> "fk_caseaggregationcondition_dataelement" >>> on table "caseaggregationcondition" >>> Detail: Key (dataelementid)=(109575) is still referenced from table >>> "caseaggregationcondition". (SqlExceptionHelper.java [http-nio-8090-exec-8]) >>> org.hibernate.exception.ConstraintViolationException: could not execute >>> statement >>> at org.hibernate.exception.internal.SQLStateConversionDelegate. >>> convert(SQLStateConversionDelegate.java:112) >>> at org.hibernate.exception.internal.StandardSQLExceptionConvert >>> er.convert(StandardSQLExceptionConverter.java:42) >>> at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(Sql >>> ExceptionHelper.java:111) >>> at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(Sql >>> ExceptionHelper.java:97) >>> at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.execu >>> teUpdate(ResultSetReturnImpl.java:207) >>> at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.ad >>> dToBatch(NonBatchingBatch.java:45) >>> at org.hibernate.persister.entity.AbstractEntityPersister.delet >>> e(AbstractEntityPersister.java:3233) >>> at org.hibernate.persister.entity.AbstractEntityPersister.delet >>> e(AbstractEntityPersister.java:3470) >>> at org.hibernate.action.internal.EntityDeleteAction.execute(Ent >>> ityDeleteAction.java:98) >>> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQu >>> eue.java:560) >>> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQu >>> eue.java:434) >>> at org.hibernate.event.internal.AbstractFlushingEventListener.p >>> erformExecutions(AbstractFlushingEventListener.java:337) >>> at org.hibernate.event.internal.DefaultFlushEventListener.onFlu >>> sh(DefaultFlushEventListener.java:39) >>> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295) >>> at org.hisp.dhis.dxf2.metadata.objectbundle.DefaultObjectBundle >>> Service.commit(DefaultObjectBundleService.java:158) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> ssorImpl.java:62) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> thodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> at org.springframework.aop.support.AopUtils.invokeJoinpointUsin >>> gReflection(AopUtils.java:302) >>> at org.springframework.aop.framework.ReflectiveMethodInvocation >>> .invokeJoinpoint(ReflectiveMethodInvocation.java:190) >>> 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:281) >>> 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.JdkDynamicAopProxy.invoke( >>> JdkDynamicAopProxy.java:208) >>> at com.sun.proxy.$Proxy186.commit(Unknown Source) >>> at org.hisp.dhis.dxf2.metadata.DefaultMetadataImportService.imp >>> ortMetadata(DefaultMetadataImportService.java:126) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> ssorImpl.java:62) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> thodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> at org.springframework.aop.support.AopUtils.invokeJoinpointUsin >>> gReflection(AopUtils.java:302) >>> at org.springframework.aop.framework.ReflectiveMethodInvocation >>> .invokeJoinpoint(ReflectiveMethodInvocation.java:190) >>> 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:281) >>> 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.JdkDynamicAopProxy.invoke( >>> JdkDynamicAopProxy.java:208) >>> at com.sun.proxy.$Proxy188.importMetadata(Unknown Source) >>> at org.hisp.dhis.webapi.controller.AbstractCrudController.delet >>> eObject(AbstractCrudController.java:772) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> ssorImpl.java:62) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> thodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> at org.springframework.web.method.support.InvocableHandlerMetho >>> d.doInvoke(InvocableHandlerMethod.java:221) >>> at org.springframework.web.method.support.InvocableHandlerMetho >>> d.invokeForRequest(InvocableHandlerMethod.java:136) >>> at org.springframework.web.servlet.mvc.method.annotation.Servle >>> tInvocableHandlerMethod.invokeAndHandle(ServletInvocableHand >>> lerMethod.java:110) >>> at org.springframework.web.servlet.mvc.method.annotation.Reques >>> tMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHan >>> dlerAdapter.java:817) >>> at org.springframework.web.servlet.mvc.method.annotation.Reques >>> tMappingHandlerAdapter.handleInternal(RequestMappingHandlerA >>> dapter.java:731) >>> at org.springframework.web.servlet.mvc.method.AbstractHandlerMe >>> thodAdapter.handle(AbstractHandlerMethodAdapter.java:85) >>> at org.springframework.web.servlet.DispatcherServlet.doDispatch >>> (DispatcherServlet.java:959) >>> at org.springframework.web.servlet.DispatcherServlet.doService( >>> DispatcherServlet.java:893) >>> at org.springframework.web.servlet.FrameworkServlet.processRequ >>> est(FrameworkServlet.java:968) >>> at org.springframework.web.servlet.FrameworkServlet.doDelete(Fr >>> ameworkServlet.java:892) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:654) >>> at org.springframework.web.servlet.FrameworkServlet.service(Fra >>> meworkServlet.java:844) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:291) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >>> r.java:52) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:330) >>> at org.springframework.security.web.access.intercept.FilterSecu >>> rityInterceptor.invoke(FilterSecurityInterceptor.java:118) >>> at org.springframework.security.web.access.intercept.FilterSecu >>> rityInterceptor.doFilter(FilterSecurityInterceptor.java:84) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.access.ExceptionTranslation >>> Filter.doFilter(ExceptionTranslationFilter.java:113) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.session.SessionManagementFi >>> lter.doFilter(SessionManagementFilter.java:103) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.authentication.AnonymousAut >>> henticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.servletapi.SecurityContextH >>> olderAwareRequestFilter.doFilter(SecurityContextHolderAwareR >>> equestFilter.java:154) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.savedrequest.RequestCacheAw >>> areFilter.doFilter(RequestCacheAwareFilter.java:45) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.authentication.www.BasicAut >>> henticationFilter.doFilter(BasicAuthenticationFilter.java:201) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.hisp.dhis.security.filter.CorsFilter.doFilter(CorsFilter.java:91) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.authentication.AbstractAuth >>> enticationProcessingFilter.doFilter(AbstractAuthenticationPr >>> ocessingFilter.java:199) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.authentication.AbstractAuth >>> enticationProcessingFilter.doFilter(AbstractAuthenticationPr >>> ocessingFilter.java:199) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.hisp.dhis.security.filter.CustomAuthenticationFilter.doF >>> ilter(CustomAuthenticationFilter.java:64) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.oauth2.provider.authentication. >>> OAuth2AuthenticationProcessingFilter.doFilter(OAuth2Authenti >>> cationProcessingFilter.java:140) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.authentication.logout.Logou >>> tFilter.doFilter(LogoutFilter.java:110) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter >>> (AutomaticAccessFilter.java:115) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.header.HeaderWriterFilter.d >>> oFilterInternal(HeaderWriterFilter.java:57) >>> at org.springframework.web.filter.OncePerRequestFilter.doFilter >>> (OncePerRequestFilter.java:107) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.context.request.async.WebAs >>> yncManagerIntegrationFilter.doFilterInternal(WebAsyncManager >>> IntegrationFilter.java:50) >>> at org.springframework.web.filter.OncePerRequestFilter.doFilter >>> (OncePerRequestFilter.java:107) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.context.SecurityContextPers >>> istenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) >>> at org.springframework.security.web.FilterChainProxy$VirtualFil >>> terChain.doFilter(FilterChainProxy.java:342) >>> at org.springframework.security.web.FilterChainProxy.doFilterIn >>> ternal(FilterChainProxy.java:192) >>> at org.springframework.security.web.FilterChainProxy.doFilter(F >>> ilterChainProxy.java:160) >>> at org.springframework.web.filter.DelegatingFilterProxy.invokeD >>> elegate(DelegatingFilterProxy.java:346) >>> at org.springframework.web.filter.DelegatingFilterProxy.doFilte >>> r(DelegatingFilterProxy.java:262) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.hisp.dhis.servlet.filter.HttpUrlPatternFilter.doFilter(H >>> ttpUrlPatternFilter.java:105) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.springframework.web.filter.ShallowEtagHeaderFilter.doFil >>> terInternal(ShallowEtagHeaderFilter.java:87) >>> at org.hisp.dhis.servlet.filter.ExcludableShallowEtagHeaderFilt >>> er.doFilterInternal(ExcludableShallowEtagHeaderFilter.java:110) >>> at org.springframework.web.filter.OncePerRequestFilter.doFilter >>> (OncePerRequestFilter.java:107) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.springframework.orm.hibernate5.support.OpenSessionInView >>> Filter.doFilterInternal(OpenSessionInViewFilter.java:151) >>> at org.springframework.web.filter.OncePerRequestFilter.doFilter >>> (OncePerRequestFilter.java:107) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.springframework.web.filter.CharacterEncodingFilter.doFil >>> terInternal(CharacterEncodingFilter.java:121) >>> at org.springframework.web.filter.OncePerRequestFilter.doFilter >>> (OncePerRequestFilter.java:107) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:239) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:206) >>> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >>> dWrapperValve.java:219) >>> at org.apache.catalina.core.StandardContextValve.invoke(Standar >>> dContextValve.java:106) >>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >>> uthenticatorBase.java:502) >>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >>> stValve.java:142) >>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >>> rtValve.java:79) >>> at org.apache.catalina.valves.AbstractAccessLogValve.invoke(Abs >>> tractAccessLogValve.java:610) >>> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >>> EngineValve.java:88) >>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >>> apter.java:518) >>> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs >>> tractHttp11Processor.java:1091) >>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler >>> .process(AbstractProtocol.java:668) >>> at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionH >>> andler.process(Http11NioProtocol.java:223) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun >>> (NioEndpoint.java:1517) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(N >>> ioEndpoint.java:1474) >>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>> Executor.java:1142) >>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>> lExecutor.java:617) >>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >>> un(TaskThread.java:61) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: org.postgresql.util.PSQLException: ERROR: update or delete >>> on table "dataelement" violates foreign key constraint >>> "fk_caseaggregationcondition_dataelement" on table >>> "caseaggregationcondition" >>> Detail: Key (dataelementid)=(109575) is still referenced from table >>> "caseaggregationcondition". >>> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorRespons >>> e(QueryExecutorImpl.java:2455) >>> at org.postgresql.core.v3.QueryExecutorImpl.processResults(Quer >>> yExecutorImpl.java:2155) >>> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecut >>> orImpl.java:288) >>> at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430) >>> at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356) >>> at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgP >>> reparedStatement.java:168) >>> at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPrep >>> aredStatement.java:135) >>> at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUp >>> date(NewProxyPreparedStatement.java:105) >>> at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.execu >>> teUpdate(ResultSetReturnImpl.java:204) >>> ... 137 more >>> >>> >>> >>> On Tue, Dec 13, 2016 at 1:13 AM, Lars Helge Øverland <[email protected]> >>> wrote: >>> >>>> Hi Channara, >>>> >>>> that means that the delete was not allowed due to case aggregation >>>> conditions still referencing the data element. You need to the delete the >>>> case aggregation queries first. If you upgrade to a later version of DHIS >>>> 2, those have been removed completely. >>>> >>>> regards, >>>> >>>> Lars >>>> >>>> On Tue, Dec 13, 2016 at 9:50 AM, channara rin <[email protected]> >>>> wrote: >>>> >>>>> dear all, >>>>> i want to delete in data elements. but when i click remove, i got >>>>> console like below: >>>>> * INFO 2016-12-13 15:48:27,917 Delete was not allowed by >>>>> CaseAggregationConditionDeletionHandler: CaseAggregationCondition >>>>> (DefaultDeletionManager.java [http-nio-80-exec-8]) >>>>> >>>>> do you know this problem, how can i delete it? >>>>> >>>>> thank you >>>>> channara >>>>> >>>>> _______________________________________________ >>>>> Mailing list: https://launchpad.net/~dhis2-users >>>>> Post to : [email protected] >>>>> Unsubscribe : https://launchpad.net/~dhis2-users >>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>>>> >>>> >>>> >>>> -- >>>> Lars Helge Øverland >>>> Lead developer, DHIS 2 >>>> University of Oslo >>>> Skype: larshelgeoverland >>>> [email protected] >>>> http://www.dhis2.org <https://www.dhis2.org/> >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: https://launchpad.net/~dhis2-devs >>>> Post to : [email protected] >>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>> More help : https://help.launchpad.net/ListHelp >>>> >>>> >>> >>> >>> -- >>> Lorill Crees >>> Project Leader / Senior Developer >>> 2Paths Solutions Ltd. <http://www.2paths.com> >>> >>> [email protected] >>> skype: lorill2paths >>> (604) 689-4123 x 15 <(604)%20689-4123> >>> >> >> >> >> -- >> Lars Helge Øverland >> Lead developer, DHIS 2 >> University of Oslo >> Skype: larshelgeoverland >> [email protected] >> http://www.dhis2.org <https://www.dhis2.org/> >> >> > > > -- > Lorill Crees > Project Leader / Senior Developer > 2Paths Solutions Ltd. <http://www.2paths.com> > > [email protected] > skype: lorill2paths > (604) 689-4123 x 15 > -- Lars Helge Øverland Lead developer, DHIS 2 University of Oslo Skype: larshelgeoverland [email protected] http://www.dhis2.org <https://www.dhis2.org/>
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

