To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=61771





------- Additional comments from [EMAIL PROTECTED] Thu Feb  9 22:53:33 -0800 
2006 -------
The ScShapeObj aggregates a SvxShapeControl. In ~ScShapeObj, the SvxShapeControl
is destroyed. It is derives (via SvxShapeTextand SvxUnoTextBase from
SvxUnoTextRangeBase, which in its destructor does a "delete pEditSource". This
pEditSource is a SvxTextEditSource instance, which in its destructor locks the
SolarMutex.

So, in short, when the ScShapeObj is destroyed, and aggregates a SvxShape which
contains text, the SolarMutex is locked, anyway, and thus the finalizer thread
is blocked.

The problem is that currently, the locking is *too late*. The shape instance is
in parts, but not completely, destroyed. The patch changes this to lock the
mutex earlier, to make the whole destruction a transaction.


However, I do not know whether there are other SvxShape instance which might not
indirectly lock the SolarMutex upon destruction. In this case, the patch might
produce additional problems. Could you elaborate where you expect them, so I can
check?

However, even then I think *not* locking the mutex is a bug, since none of all
those SvxShape implementations are really threadsafe. Only some methods rely on
the SolarMutex, some don't, and none has an own thread-safe concept with own
mutexes. So, in any case, I think destroying the shapes should be transactional,
and guarded by the SolarMutex.


Side note:
A less invasive patch is to change the ScShapeObj destructor as follows:
  ScUnoGuard aGuard;
  mxShapeAgg.clear();
That is, only guard the reset of the aggregated object (and thus its
destruction, since this is the only reference) with the SolarMutex. This also
solves the problem. However, I am not sure if this is better, since it loses the
transaction characteristics of the last release ...


---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to