Bug 122946 - Add Categories causes Oracle error due to "categorySubtree_parents"
Summary: Add Categories causes Oracle error due to "categorySubtree_parents@link.s0"
Keywords:
Status: CLOSED DUPLICATE of bug 119466
Alias: None
Product: Red Hat Enterprise CMS
Classification: Retired
Component: content types
Version: nightly
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: ccm-bugs-list
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-05-10 17:30 UTC by Martin
Modified: 2007-04-18 17:07 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2006-02-21 19:03:10 UTC
Embargoed:


Attachments (Terms of Use)

Description Martin 2004-05-10 17:30:54 UTC
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

Comment 1 Archit Shah 2004-05-11 13:55:07 UTC
This looks like a duplicate of bug 119466. Is this occurring on the
latest nightly builds, old nightly builds, or 6.1.0 release?

Comment 2 Martin 2004-05-11 14:09:04 UTC
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

Comment 3 Daniel Berrangé 2004-05-11 14:15:25 UTC
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 ***

Comment 4 Red Hat Bugzilla 2006-02-21 19:03:10 UTC
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.


Note You need to log in before you can comment on or make changes to this bug.