Description of problem: The identifier "categorySubtree_parents" is 31 characters long and causes "ORA-00972: identifier is too long". Oracle schema object names must not exceed 30 characters. Version-Release number of selected component (if applicable): CMS 6.1 How reproducible: Click "Assign Categories"/"Add Categories" for any item when using an Oracle database Actual results: java.sql.SQLException: ORA-00972: identifier is too long at oracle.jdbc.dbaccess.DBError.throwSqlException (DBError.java:134) at oracle.jdbc.oci8.OCIDBAccess.check_error (OCIDBAccess.java:2337) at oracle.jdbc.oci8.OCIDBAccess.parseExecuteDescribe (OCIDBAccess.java:1258) at oracle.jdbc.driver.OracleStatement.doExecuteQuery (OracleStatement.java:2513) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout (OracleStatement.java:2857) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate (OraclePreparedStatement.java:608 ) at oracle.jdbc.driver.OraclePreparedStatement.execute (OraclePreparedStatement.java:684) at com.redhat.persistence.engine.rdbms.RDBMSEngine.execute (RDBMSEngine.java:489) at com.redhat.persistence.engine.rdbms.RDBMSEngine.execute (RDBMSEngine.java:431) at com.redhat.persistence.engine.rdbms.RDBMSEngine.execute (RDBMSEngine.java:265) at com.redhat.persistence.Cursor.execute(Cursor.java:131) at com.redhat.persistence.Cursor.next(Cursor.java:115) at com.arsdigita.persistence.DataQueryImpl.next (DataQueryImpl.java:646) at com.arsdigita.persistence.DataQueryDecorator.next (DataQueryDecorator.java:75) at com.arsdigita.domain.DomainQuery.next(DomainQuery.java:94) at com.arsdigita.cms.ui.authoring.CategoryWidget.generateWidget (CategoryWidget.java:90) at com.arsdigita.bebop.form.Widget.generateXML (Widget.java:475) at com.arsdigita.bebop.BoxPanel.generateXML(BoxPanel.java:119) at com.arsdigita.bebop.Form.generateXMLSansState (Form.java:234) at com.arsdigita.bebop.Form.generateXML(Form.java:194) at com.arsdigita.bebop.SimpleContainer.generateChildrenXML (SimpleContainer.java:243) at com.arsdigita.bebop.SimpleContainer.generateXML (SimpleContainer.java:260) at com.arsdigita.bebop.SimpleContainer.generateChildrenXML (SimpleContainer.java:243) at com.arsdigita.bebop.SimpleContainer.generateXML (SimpleContainer.java:260) at com.arsdigita.bebop.SimpleContainer.generateChildrenXML (SimpleContainer.java:243) at com.arsdigita.bebop.SimpleContainer.generateXML (SimpleContainer.java:260) at com.arsdigita.toolbox.ui.ModalPanel.generateXML (ModalPanel.java:100) at com.arsdigita.toolbox.ui.LayoutPanel.section (LayoutPanel.java:80) at com.arsdigita.toolbox.ui.LayoutPanel.generateXML (LayoutPanel.java:65) at com.arsdigita.cms.ui.authoring.WizardSelector.generateXML (WizardSelector.java:128) at com.arsdigita.bebop.TabbedPane.generateXML (TabbedPane.java:444) at com.arsdigita.bebop.SimpleContainer.generateChildrenXML (SimpleContainer.java:243) at com.arsdigita.bebop.SimpleContainer.generateXML (SimpleContainer.java:260) at com.arsdigita.bebop.Page.generateXML(Page.java:642) The query generated is : select t6.sort_key as "categorySubtree_parents", t6.related_category_id as "categorySubtree_parents", t56.object_type as "categorySubtree_parents", t6.category_id as "categorySubtree_parents", t65.object_type as "categorySubtree_parents", t6.default_p as "categorySubtree_parents", t6.relation_type as "categorySubtree_parents", t20.category_id as "categorySubtree_parents.id", t65.object_type as "categorySubtree_parents.objec8", t65.display_name as "categorySubtree_parents.displ9", t65.default_domain_class as "categorySubtree_parents.defa10", t2.category_id as "this.categorySubtree.id", t2.object_type as "this.categorySubtree.objectT12", t2.default_ancestors as "this.categorySubtree.default13", t2.abstract_p as "this.categorySubtree.isAbstr14", t2.enabled_p as "this.categorySubtree.isEnabled", t2.description as "this.categorySubtree.descrip16", t2.name as "this.categorySubtree.name", t2.default_domain_class as "this.categorySubtree.default18", t20.description as "categorySubtree_parents.desc19", t20.name as "categorySubtree_parents.name", t20.url as "categorySubtree_parents.url", t20.enabled_p as "categorySubtree_parents.isEn22", t20.abstract_p as "categorySubtree_parents.isAb23", t20.default_ancestors as "categorySubtree_parents.defa24" from ( select cat_categories.category_id, name, description, enabled_p, abstract_p, object_type, default_domain_class, default_ancestors from acs_objects, cat_categories, cat_cat_subcat_trans_index trans where acs_objects.object_id = cat_categories.category_id and trans.category_id = ? and trans.subcategory_id = cat_categories.category_id) t2 join cat_category_category_map t6 join acs_objects t56 on t6.related_category_id = t56.object_id join acs_objects t65 on t6.category_id = t65.object_id on t2.category_id = t6.related_category_id join cat_categories t20 on t20.category_id = t65.object_id where t20.category_id = t6.category_id and t6.category_id = t20.category_id
This looks like a duplicate of bug 119466. Is this occurring on the latest nightly builds, old nightly builds, or 6.1.0 release?
Hi Archit, I am using the APLAWS release jars which I believe are similar to 6.1. Yes, I agree that the symptons are similar and it could be the same bug. Is it safe to get a nightly build now or has work already started on 6.2? regards Martin
Yes, this bug is present in the APLAWS release. I posted a workaround to the aplaws-devel mailing list a few weeks back which I reproduce here: <quote> Unfortunately this is a bug that crept into persistence when running on Oracle. Identifiers in Oracle are limited to 31 characters, and in some circumstances the generated queries exceeded this limit. See https://bugzilla.redhat.com/119466 To get around this problem, you'll need an updated copy of the clas file com/redhat/persistence/Signature.class which I've put up at http://people.redhat.com/berrange/aplaws-plus/ You'll need to modify the file /usr/share/java/ccm-core-6.1.0.jar and replace the Signature.class, then re-run 'ccm hostinit-bundle' with same argments as before, but also appending '--clean'. NB, PostgreSQL is unaffected by this bug since it doesn't have such stupidly small limits as Oracle. </quote> *** This bug has been marked as a duplicate of 119466 ***
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.