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





------- Additional comments from [EMAIL PROTECTED] Wed Jun 18 14:35:39 +0000 
2008 -------
There appears to be a problem with (MS 2008) C++ exception handling on
brinzing's Vista machine.  The top of the stack in the attached errormail.txt,
with local symbols filled in, is:

<quote>
0 ip="0x4EC518FB" rel="0x000018FB" name="sotmi.dll" -> {protected: virtual
__thiscall SotObject::~SotObject(void)}
1 ip="0x4EFC71A2" rel="0x000971A2" name="sfxmi.dll" -> {protected: virtual void
* __thiscall SfxObjectShell::`vector deleting destructor'(unsigned int)}
2 ip="0x4D49F9C8" rel="0x0002F9C8" name="tlmi.dll" -> {protected: virtual void
__thiscall SvRefBase::QueryDelete(void)}
3 ip="0x4EFC5D88" rel="0x00095D88" name="sfxmi.dll" -> {protected: virtual
unsigned char __thiscall SfxObjectShell::Close(void)}
4 ip="0x4EFC6D24" rel="0x00096D24" name="sfxmi.dll" -> {protected: virtual
__thiscall SfxObjectShell::~SfxObjectShell(void)}
5 ip="0x6DE0DC57" rel="0x0005DC57" ordinal="NLG_Return+0x00000000"
name="MSVCR90.dll"
6 ip="0x4B1C21EF" rel="0x001B21EF" name="scmi.dll" -> {class
com::sun::star::uno::Reference<class com::sun::star::uno::XInterface> __cdecl
ScDocument_createInstance(class com::sun::star::uno::Reference<class
com::sun::star::lang::XMultiServiceFactory> const &,unsigned __int64)} -> call
{public: __thiscall ScDocShell::ScDocShell(enum SfxObjectCreateMode,bool)}
7 ip="0x4F012724" rel="0x000E2724" name="sfxmi.dll" -> {private: class
com::sun::star::uno::Reference<class com::sun::star::uno::XInterface> __thiscall
sfx2::SfxModelFactory::impl_createInstance(unsigned __int64)const}
...
</quote>

What this probably means is that frame 6 ScDocument_createInstance calls the
ScDocShell ctor which (indirectly) throws a C++ exception that causes stack
unwinding (frame 5), the ScDocShell ctor (and/or its subcomponents) is not
written in a thread safe way, and thus the (unexpected) stack unwinding causes a
crash.  A working assumption is that in all cases a C++ exception is thrown
somewhere in the ScDocShell ctor call stack, but normally also caught in the
ScDocShell ctor call stack, so that it not normally passes out of the ScDocShell
ctor (and thus not normally causes problems during stack unwinding of the
ScDocShell ctor frame).  And, right enough, clicking the "Spreadsheet" button in
the start center of a working (Win XP based) DEV300m19 shows that exactly one
C++ exception is thrown from within the ScDocShell ctor:

<quote>
kernel32.dll!77e55e02()         
[Frames below may be incorrect and/or missing, no symbols loaded for 
kernel32.dll]      
kernel32.dll!77e55e02()         
unoxmlmi.dll!XPath::CXPathAPI::eval(const
com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> &
contextNode={...}, const rtl::OUString & expr={...})  Line 336  C++
unoxmlmi.dll!XPath::CXPathAPI::selectNodeList(const
com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> &
contextNode={...}, const rtl::OUString & expr={...})  Line 202 + 0x1a bytes     
C++
unoxmlmi.dll!XPath::CXPathAPI::selectSingleNode(const
com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> &
contextNode={...}, const rtl::OUString & expr={...})  Line 227 + 0x1a bytes     
C++
sfxmi.dll!`anonymous
namespace'::SfxDocumentMetaData::init(com::sun::star::uno::Reference<com::sun::star::xml::dom::XDocument>
i_xDoc={...})  Line 1114 + 0x12 bytes   C++
sfxmi.dll!`anonymous namespace'::SfxDocumentMetaData::SfxDocumentMetaData(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
context={...})  Line 1318 + 0x1f bytes  C++
sfxmi.dll!comp_SfxDocumentMetaData::_create(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
context={...})  Line 2251 + 0x22 bytes  C++
cppuhelper3MSC.dll!cppu::OSingleFactoryHelper::createInstanceEveryTime(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 177 + 0x9 bytes   C++
cppuhelper3MSC.dll!cppu::OSingleFactoryHelper::createInstanceWithContext(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 218 + 0x15 bytes  C++
cppuhelper3MSC.dll!cppu::OFactoryComponentHelper::createInstanceWithContext(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 494 + 0xc bytes   C++
cppuhelper3MSC.dll!cppu::ORegistryFactoryHelper::createInstanceEveryTime(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 758 + 0xc bytes   C++
cppuhelper3MSC.dll!cppu::OSingleFactoryHelper::createInstanceWithContext(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 218 + 0x15 bytes  C++
cppuhelper3MSC.dll!cppu::OFactoryComponentHelper::createInstanceWithContext(const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 494 + 0xc bytes   C++
bootstrap.uno.dll!stoc_smgr::OServiceManager::createInstanceWithContext(const
rtl::OUString & rServiceSpecifier={...}, const
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> &
xContext={...})  Line 1276 + 0xc bytes  C++
bootstrap.uno.dll!stoc_smgr::OServiceManager::createInstance(const rtl::OUString
& rServiceSpecifier={...})  Line 1386 + 0x1a bytes      C++
sfxmi.dll!SfxBaseModel::getDocumentProperties()  Line 803 + 0x49 bytes  C++
sfxmi.dll!SfxObjectShell::SetModel(SfxBaseModel * pModel=0x0a290f24)  Line 1034
+ 0xd bytes     C++
scmi.dll!ScModelObj::CreateAndSet(ScDocShell * pDocSh=0x0838fd98)  Line 208     
C++
scmi.dll!ScDocShell::ScDocShell(SfxObjectCreateMode eMode=138116656, const bool
_bScriptSupport=true)  Line 2391 + 0x6 bytes    C++
scmi.dll!ScDocument_createInstance(const
com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> &
__formal={...}, const unsigned __int64 _nCreationFlags=4294967296)  Line 68 +
0x22 bytes      C++
sfxmi.dll!sfx2::SfxModelFactory::impl_createInstance(const unsigned __int64
_nCreationFlags=0)  Line 138 + 0x11 bytes       C++
...
</quote>

CXPathAPI::eval does "throw XPathException();" at
unoxml/source/xpath/xpathapi.cxx:1.8 l. 332 which passes out through
CXPathAPI::selectNodeList and CXPathAPI::selectSingleNode and then should be
caught in SfxDocumentMetaData::init via the "catch
(com::sun::star::uno::Exception &)" at
sfx2/source/doc/SfxDocumentMetaData.cxx:1.9 l. 1115.  For whatever reason, that
catch block appears to not take effect in brinzing's scenario...

---------------------------------------------------------------------
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