incubator-ooo-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 119653] [From Symphony]Crash after delete column(s) from chart's source table, and then adjusted table size
Date Fri, 01 Jun 2012 06:11:47 GMT
https://issues.apache.org/ooo/show_bug.cgi?id=119653

chenpeng2006@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |chenpeng2006@gmail.com

--- Comment #1 from chenpeng2006@gmail.com ---
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..

-- 
You are receiving this mail because:
You are the assignee for the bug.

Mime
View raw message