Bug 98430 - History UI throws exceptions on unpublished content
Summary: History UI throws exceptions on unpublished content
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Enterprise CMS
Classification: Retired
Component: other
Version: nightly
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Vadim Nasardinov
QA Contact: Jon Orris
URL:
Whiteboard:
Depends On:
Blocks: rc0blockers
TreeView+ depends on / blocked
 
Reported: 2003-07-02 14:42 UTC by Jon Orris
Modified: 2007-04-18 16:55 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2003-07-09 17:26:33 UTC


Attachments (Terms of Use)

Description Jon Orris 2003-07-02 14:42:05 UTC
Description of problem:
@33139/Postgres

The history UI gives a couple of different exceptions when accessing elements
after unpublishing content.

Steps:
Create an article with an Image.
Everything in the History UI works fine.
Publish it.
Unpublish it.
Apply a workflow and change the content & image.
Go to the history UI. 
Attempting to view the diff between the previously published version and the
current version, or to view the old published version, gives: 
com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)

Attempting to view one of the Pre-published versions, such as the Edited or
Authored version, gives: 

com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)
com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)
com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)
com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)
com.arsdigita.versioning.ProxyDataObject$CollectionAttributeException:
slaveVersions has already been processed.
attr: com.arsdigita.persistence.OID:12:
serialized=com.arsdigita.cms.Folder;id:1:9036
deserialized=[com.arsdigita.cms.Folder:{id=9036}]
operation: [com.arsdigita.versioning.GenericOperation:{id=3510}]
attribute=slaveVersions
changeset=[com.arsdigita.versioning.DataObjectChange:{id=3285}]
eventType=[com.arsdigita.versioning.EventType:{id=4}]
id=3510
javaclass=[com.arsdigita.versioning.JavaClass:{id=12}]
subtype=1
value=com.arsdigita.cms.Folder;id:1:9036

	at
com.arsdigita.versioning.ProxyDataObject$Collection.add(ProxyDataObject.java:684)
	at com.arsdigita.versioning.ProxyDataObject.add(ProxyDataObject.java:234)
	at com.arsdigita.versioning.ProxyDataObject.undoRemove(ProxyDataObject.java:432)
	at com.arsdigita.versioning.ProxyDataObject.undoEvent(ProxyDataObject.java:391)
	at com.arsdigita.versioning.RollbackRecord.rollback(RollbackRecord.java:204)
	at
com.arsdigita.versioning.RollbackRecord.computeDifferences(RollbackRecord.java:157)
	at com.arsdigita.versioning.RollbackRecord.diff(RollbackRecord.java:168)
	at com.arsdigita.versioning.Versions.diff(Versions.java:108)
	at com.arsdigita.versioning.Versions.diff(Versions.java:112)
	at
com.arsdigita.cms.ui.revision.DifferencePane$ModelBuilder.makeModel(DifferencePane.java:159)
	at com.arsdigita.bebop.Table$3.initialValue(Table.java:768)
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.bebop.Table.generateXML(Table.java(Compiled Code))
	at com.arsdigita.toolbox.ui.Section.generateXML(Section.java:117)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.section(LayoutPanel.java(Compiled Code))
	at com.arsdigita.toolbox.ui.LayoutPanel.generateXML(LayoutPanel.java:73)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.toolbox.ui.ModalPanel.generateXML(ModalPanel.java:85)
	at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444)
	at
com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java(Compiled Code))
	at com.arsdigita.bebop.Page.generateXML(Page.java:638)
	at com.arsdigita.bebop.Page.buildDocument(Page.java:736)
	at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:262)
	at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:71)
	at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:270)

Comment 1 Jon Orris 2003-07-02 14:44:59 UTC
ARGH. ETest broke copy & paste on Windoze _again_, so the second stack trace is
a dup of the first. Will add the correct stack trace when I use a real OS again.


Comment 2 Richard Li 2003-07-03 19:47:00 UTC
Vadim, can you take a look? This still exists after your fix.

Comment 3 Vadim Nasardinov 2003-07-03 21:37:40 UTC
This seems to be fixed by the combination of p4 changes 33248 and  
33257.  I think Justin should take a look at 33257 that fixes an NPE  
in OperationIterator.  With the NPE fixed, the output of the diff  
looks like so (view in fixed-width font):  
  
  
Object             | Property      | Change                     
-------------------+---------------+--------------------------  
Publishing is Slow | SlaveVersions | Added Publishing is Slow  
                   |               |   
Publishing is Slow | TextAsset     | To Publishing is Slow  
                   |               | From nothing  
                   |               |   
Publishing is Slow | ImageCaptions | Removed Publishing is Slow  
                   |               |  
Publishing is Slow | Lead          | To "reaallly slow"  
                   |               | From nothing  
                   |               |  
null               | ObjectType    | To nothing  
                                   | From  
"com.arsdigita.cms.contenttypes.Article"  
                                     
  
  
In other words, repeat the steps described by Jon above, and view the  
difference between the current version and the initial version.  
Notice the abundance of rows that look like so:  
  
Object:   null  
Property: LaunchDate  
Change:   To nothing  
          From Thu Jul 17 00:00:00 EDT 2003  
  
  
Not sure if this is the desired effect.  
 


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