Apache OpenOffice (AOO) Bugzilla – Issue 119653
[From Symphony]Crash after delete column(s) from chart's source table, and then adjusted table size
Last modified: 2012-10-09 09:38:15 UTC
Build: AOO3.4 OS: All Steps: 1. New a document. 2. Insert a table then input some data. 3. Create a chart using the table as its data source. 4. Delete a column of table. 5. Drog to adjust columns width of table
Root Cause: The crash happens because of an exception was thrown out in SwChartDataSequence::SetModified(), just because the SwCharDataSequence object has been disposed. The source code is located in main/sw/source/core/unocore/unochart.cxx. void SAL_CALL SwChartDataSequence::setModified(::sal_Bool bModified ) throw (beans::PropertyVetoException, uno::RuntimeException) { vos::OGuard aGuard( Application::GetSolarMutex() ); if (bDisposed) throw lang::DisposedException(); if (bModified) LaunchModifiedEvent( aModifyListeners, dynamic_cast< XModifyBroadcaster * >(this) ); } Actually, the former design of SwClient will disband itself from the notification list in its destruction. But the SwCharDataSeqence won't be destructed but just disposed in code (the data member SwChartDataSequence::bDisposed will be set to TRUE), the relationship between client and modification are not released. So any notification from modify object will lead this crash. Solution: Recorrect the logic of code in SwChartDataSequence::Dispose(), release the relationship inside..
Created attachment 77884 [details] patch for bug 119653
reviewed, built and tested, no crash anymore, patch applied to trunk trunk -> revision 1347951
Verified it on Aoo_Trunk_20120616.1800.1350879 and it does not reproduce, so close it as fixed.
set Target Milestone to AOO 3.5.0 for PM purpose.