Bug 117852
Summary: | Cannot delete a navigation category | ||
---|---|---|---|
Product: | [Retired] Red Hat Enterprise CMS | Reporter: | Cress Rolfe <cress.rolfe> |
Component: | APLAWS | Assignee: | ccm-bugs-list |
Status: | CLOSED WONTFIX | QA Contact: | Daniel Berrangé <berrange> |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | nightly | CC: | arturo.dell |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2010-09-03 14:31:18 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Cress Rolfe
2004-03-09 10:34:10 UTC
This is a HIGH priority issue. I created a new category and then deleted it so it is not a bug, agreed. It is more a bug by obscurity, as a user we have no way of knowing which item is associated to this category. Can't figure it out from the error message: CCM issue report code: 194.202.210.41:476c76ff:fb39ccaced -*-*-*-*-*- Begin Error Report -*-*-*-*-*- -*-*-*- ACS Error Report Code: 194.202.210.41:476c76ff:fb39ccaced -*-*-*- -*-*-*- Message 1: com.caucho.jsp.JspLineException: null (root cause: ORA-02292: integrity constraint (APLAWS_PLUS.TRM_TER_MOD_CATEGOR_ID_F_J1OJJ) violated - child record found ) -*-*-*- -*-*-*- Message 2: com.arsdigita.persistence.PersistenceException: null (root cause: ORA-02292: integrity constraint (APLAWS_PLUS.TRM_TER_MOD_CATEGOR_ID_F_J1OJJ) violated - child record found ) -*-*-*- -*-*-*- Message 3: com.redhat.persistence.engine.rdbms.RDBMSEngine$4: ORA-02292: integrity constraint (APLAWS_PLUS.TRM_TER_MOD_CATEGOR_ID_F_J1OJJ) violated - child record found -*-*-*- -*-*-*- Section: HTTP headers -*-*-*- Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* Accept-Encoding: gzip, deflate Accept-Language: en-gb Cache-Control: no-cache, max-age=259200 Connection: keep-alive Content-Length: 421 Content-Type: application/x-www-form-urlencoded Cookie: ad_user_login=9320!1170936721934!hmMaoufbxXxWyem4bi2Dfw==; JSESSIONID=axgGmz94X3s7 Host: youth.aplaws.org.uk REDIRECT_STATUS: 200 REDIRECT_URL: /ccm/content/admin/index.jsp Referer: http://youth.aplaws.org.uk/ccm/content/admin/index.jsp?bbp.1120.d=asc&bbp.69.ps=20&bbp.781.ch=19058&bbp.1242.sel=198&bbp.820.d=asc&bbp.944.sel=19058&bbp.938.sel_context=%3Cdefault%3E&bbp.19.sel=65&bbp.692.stack=701&bbp.944.state=+18910++19694++43932++18914++19020++19042++19058+&bbp.s=777&bbp.947.stack=955&bbp.i=d0.4.1.4.1.j7.1.1o.1.1.1&bbp.3.pane=5&bbp.19.state=+65+&bbp.808.d=asc&g11n.enc=UTF-8 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Via: 1.1 camden.aplaws.org.uk:80 (Squid/2.4.STABLE6) X-Forwarded-For: 212.85.13.68 -*-*-*- Section: Cookies -*-*-*- ad_user_login: 9320!1170936721934!hmMaoufbxXxWyem4bi2Dfw== (expires: -1) JSESSIONID: axgGmz94X3s7 (expires: -1) -*-*-*- Section: CCM User -*-*-*- Party not logged in -*-*-*- Section: Stack trace -*-*-*- com.redhat.persistence.engine.rdbms.RDBMSEngine$4: ORA-02292: integrity constraint (APLAWS_PLUS.TRM_TER_MOD_CATEGOR_ID_F_J1OJJ) violated - child record found at com.redhat.persistence.engine.rdbms.RDBMSEngine.execute(RDBMSEngine.java(Compiled Code)) at com.redhat.persistence.engine.rdbms.RDBMSEngine.execute(RDBMSEngine.java(Inlined Compiled Code)) at com.redhat.persistence.engine.rdbms.RDBMSEngine.flush(RDBMSEngine.java(Compiled Code)) at com.redhat.persistence.Session.flushInternal(Session.java(Compiled Code)) at com.redhat.persistence.Session.flush(Session.java(Compiled Code)) at com.arsdigita.persistence.DataObjectImpl.delete(DataObjectImpl.java:391) at com.arsdigita.domain.DomainObject.delete(DomainObject.java:324) at com.arsdigita.categorization.Category.deleteCategoryAndOrphan(Category.java:755) at com.arsdigita.cms.ui.category.CategoryAdminPane$DeleteForm.process(CategoryAdminPane.java:169) at com.arsdigita.bebop.FormSection.fireProcess(FormSection.java:490) at com.arsdigita.bebop.FormSection$4.process(FormSection.java:464) at com.arsdigita.bebop.FormModel.fireFormProcess(FormModel.java(Compiled Code)) at com.arsdigita.bebop.FormModel.process(FormModel.java(Compiled Code)) at com.arsdigita.bebop.Form.process(Form.java(Compiled Code)) at com.arsdigita.bebop.Form.respond(Form.java:281) at com.arsdigita.bebop.PageState.respond(PageState.java(Compiled Code)) at com.arsdigita.bebop.Page.process(Page.java(Compiled Code)) at com.arsdigita.bebop.Page.process(Page.java(Compiled Code)) at com.arsdigita.bebop.Page.buildDocument(Page.java:758) at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:281) at com.arsdigita.cms.CMSExcursion$1.excurse(CMSExcursion.java(Compiled Code)) at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java(Compiled Code)) at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java(Compiled Code)) at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:296) at _packages._content_22dsection._www._admin._index__jsp._jspService(_index__jsp.java:54) at com.caucho.jsp.JavaPage.service(JavaPage.java(Compiled Code)) at com.caucho.jsp.Page.subservice(Page.java(Compiled Code)) at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java(Compiled Code)) at com.caucho.server.http.Invocation.service(Invocation.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.arsdigita.cms.ContentSectionServlet.doService(ContentSectionServlet.java:171) at com.arsdigita.web.BaseApplicationServlet$1.excurse(BaseApplicationServlet.java(Compiled Code)) at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java(Compiled Code)) at com.arsdigita.web.BaseApplicationServlet.doService(BaseApplicationServlet.java(Compiled Code)) at com.arsdigita.web.BaseServlet$1.excurse(BaseServlet.java(Compiled Code)) at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java(Compiled Code)) at com.arsdigita.web.BaseServlet.internalService(BaseServlet.java(Compiled Code)) at com.arsdigita.web.BaseServlet.doPost(BaseServlet.java:291) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java(Compiled Code)) at com.caucho.server.http.Invocation.service(Invocation.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java(Compiled Code)) at com.arsdigita.web.BaseDispatcher.forward(BaseDispatcher.java(Compiled Code)) at com.arsdigita.web.BaseDispatcher.forward(BaseDispatcher.java(Compiled Code)) at com.arsdigita.web.BaseDispatcher.dispatch(BaseDispatcher.java(Compiled Code)) at com.arsdigita.web.DispatcherServlet.doService(DispatcherServlet.java(Compiled Code)) at com.arsdigita.web.BaseServlet$1.excurse(BaseServlet.java(Compiled Code)) at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java(Compiled Code)) at com.arsdigita.web.BaseServlet.internalService(BaseServlet.java(Compiled Code)) at com.arsdigita.web.BaseServlet.doPost(BaseServlet.java:291) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java(Compiled Code)) at com.arsdigita.london.shortcuts.ShortcutFilter.doService(ShortcutFilter.java(Compiled Code)) at com.arsdigita.web.BaseFilter.doFilter(BaseFilter.java(Compiled Code)) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java(Compiled Code)) at com.arsdigita.london.subsite.SubsiteFilter.doService(SubsiteFilter.java(Compiled Code)) at com.arsdigita.web.BaseFilter.doFilter(BaseFilter.java(Compiled Code)) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java(Compiled Code)) at com.caucho.server.http.Invocation.service(Invocation.java(Compiled Code)) at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java(Compiled Code)) at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java(Compiled Code)) at com.caucho.server.TcpConnection.run(TcpConnection.java:139) at java.lang.Thread.run(Thread.java:513) The problem here is that these categories were initially by the ESD-Toolkit controlled list importer. Thus, for every category, there is an associated 'Term' object containing ESD-Toolkit metadata for purposes of tracking/managing upgrades. The CMS, however, has no knowledge of the ESD-Toolkit, so it attempts to delete the category directly, rather then the Term, causes this constraint violation. To fix this we're going to have to consider two options: * Disable all editing of categories from within the CMS & provide new UI in the Terms application which ensures the ESD-Toolkit metadata doesn't get screwed up. * Change the data model to allow categories to be deleted without removing the associated Term, although we'll now be loosing information making upgrades to new version of ESD Toolkit lists considerably more difficult and unreliable, if not impossible in some cases. Option a) is definitely the preferred option long term, but involves more work in the short term, so we'll have to think about this a little more to see if there is a quicker 'half way house' which resolves this bug without loosing the vital metadata. I think the navigation category list is different from the rest of the ESD categories (LGCL - LGDL - LGSL) and has no connection with them. I don't see why you would need to track/manage upgrades on the navigation list if it is used exclusively for front end IA display. I think they are currently linked because we are using a trimmed down version of the LGCL for navigation, because we haven't got a specific list for navigation. Whether they are officially defined by the ESD toolkit all category list imports make use of the same code in the 'terms' application, so the nav categories get the same infrastructre as the other categories. Making changes to way nav categories are handled would affect LGC, LGSL, etc as well, so we can't simply drop the tracking changes ability from Nav categories. In addition, it has been indicated that a nav category tree may be defined by ESD Toolkit in the future, so by using the same importer we are preparted to adopt this if it does eventually get defined. So as per my previous comment, we still need to figure out a solution for the working with updates to categories managed by the terms application. |