Public bug reported: Data set sections can currently be assigned non-unique names. Perhaps this is a design feature, but it does not seem to make a whole lot of sense. Would suggest to require each section to have a unique name. When dataset sections with identical names are attempted to be deleted, an exception occurs.
* ERROR 09:54:44,216 Error while executing action (ExceptionInterceptor.java [17 109727@qtp-7408068-94]) org.hibernate.NonUniqueResultException: query did not return a unique result: 2 at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl. java:868) at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:369) at org.hisp.dhis.dataset.hibernate.HibernateSectionStore.getSectionByNam e(HibernateSectionStore.java:89) at org.hisp.dhis.dataset.DefaultSectionService.getSectionByName(DefaultS ectionService.java:98) 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.aop.support.AopUtils.invokeJoinpointUsingReflecti on(AopUtils.java:309) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJo inpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.in voke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami cAopProxy.java:202) at $Proxy19.getSectionByName(Unknown Source) at org.hisp.dhis.dataset.action.section.ValidateSectionAction.execute(Va lidateSectionAction.java:102) 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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultA ctionInvocation.java:441) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(Defa ultActionInvocation.java:280) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:243) at org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor.interc ept(XWorkPortalUserInterceptor.java:82) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor.inte rcept(XWorkPortalModuleInterceptor.java:85) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor.interc ept(XWorkPortalMenuInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor.inte rcept(XWorkPortalParamsInterceptor.java:117) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.ContextInterceptor.intercept(ContextInterce ptor.java:70) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.StyleInterceptor.intercept(StyleInterceptor .java:107) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.SystemSettingInterceptor.intercept(SystemSe ttingInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.DisplayPropertyInterceptor.intercept(Displa yPropertyInterceptor.java:90) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.SortOrderInterceptor.intercept(SortOrderInt erceptor.java:124) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.security.intercept.XWorkSecurityInterceptor.intercept(X WorkSecurityInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.I18nInterceptor.intercept(I18nInterceptor.j ava:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Cha iningInterceptor.java:126) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept (ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.inter cept(StaticParametersInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.ExceptionInterceptor.intercept(ExceptionInt erceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.j ava:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.jav a:488) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatc her.java:395) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:368) at org.hisp.dhis.security.filter.RequiredLoginFilter.doFilter(RequiredLo ginFilter.java:129) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(Automati cAccessFilter.java:112) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.logout.LogoutFilter.d oFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AbstractAuthenticatio nProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.context.SecurityContextPersistenceFi lter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChai nProxy.java:169) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D elegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat ingFilterProxy.java:167) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.do FilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR equestFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 88) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 82) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 65) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1 52) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54 2) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio n.java:943) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja va:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j ava:582) ** Affects: dhis2 Importance: Undecided Status: New -- You received this bug notification because you are a member of DHIS 2 developers, which is subscribed to DHIS. https://bugs.launchpad.net/bugs/724165 Title: datasetsection-allow-nonunique-names Status in DHIS 2 - District Health Information Software: New Bug description: Data set sections can currently be assigned non-unique names. Perhaps this is a design feature, but it does not seem to make a whole lot of sense. Would suggest to require each section to have a unique name. When dataset sections with identical names are attempted to be deleted, an exception occurs. * ERROR 09:54:44,216 Error while executing action (ExceptionInterceptor.java [17 109727@qtp-7408068-94]) org.hibernate.NonUniqueResultException: query did not return a unique result: 2 at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl. java:868) at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:369) at org.hisp.dhis.dataset.hibernate.HibernateSectionStore.getSectionByNam e(HibernateSectionStore.java:89) at org.hisp.dhis.dataset.DefaultSectionService.getSectionByName(DefaultS ectionService.java:98) 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.aop.support.AopUtils.invokeJoinpointUsingReflecti on(AopUtils.java:309) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJo inpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.in voke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami cAopProxy.java:202) at $Proxy19.getSectionByName(Unknown Source) at org.hisp.dhis.dataset.action.section.ValidateSectionAction.execute(Va lidateSectionAction.java:102) 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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultA ctionInvocation.java:441) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(Defa ultActionInvocation.java:280) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:243) at org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor.interc ept(XWorkPortalUserInterceptor.java:82) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor.inte rcept(XWorkPortalModuleInterceptor.java:85) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor.interc ept(XWorkPortalMenuInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor.inte rcept(XWorkPortalParamsInterceptor.java:117) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.ContextInterceptor.intercept(ContextInterce ptor.java:70) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.StyleInterceptor.intercept(StyleInterceptor .java:107) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.SystemSettingInterceptor.intercept(SystemSe ttingInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.DisplayPropertyInterceptor.intercept(Displa yPropertyInterceptor.java:90) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.SortOrderInterceptor.intercept(SortOrderInt erceptor.java:124) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.security.intercept.XWorkSecurityInterceptor.intercept(X WorkSecurityInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.I18nInterceptor.intercept(I18nInterceptor.j ava:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Cha iningInterceptor.java:126) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept (ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.inter cept(StaticParametersInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.hisp.dhis.interceptor.ExceptionInterceptor.intercept(ExceptionInt erceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionI nvocation.java:237) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.j ava:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.jav a:488) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatc her.java:395) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:368) at org.hisp.dhis.security.filter.RequiredLoginFilter.doFilter(RequiredLo ginFilter.java:129) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(Automati cAccessFilter.java:112) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.logout.LogoutFilter.d oFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.authentication.AbstractAuthenticatio nProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.context.SecurityContextPersistenceFi lter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain. doFilter(FilterChainProxy.java:380) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChai nProxy.java:169) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D elegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat ingFilterProxy.java:167) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.do FilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR equestFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 88) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 82) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 65) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1 52) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54 2) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio n.java:943) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja va:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j ava:582) _______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp