diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-09-18 12:40:57 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-09-18 15:08:56 +0200 |
commit | cccc6bcfa095121c91e8bbc396f5bcf7e95424b9 (patch) | |
tree | f94a97a9698e3376405a36decc7612a2c523c9fd /desktop/inc | |
parent | a0659cc41d7764dd104bce82f8c5b3f0b8073173 (diff) |
Don't access broken service mgr during bootstrap failure
...so that displaying a (non-translated) error box upon BE_UNO_SERVICEMANAGER
works after all. Augment the error text with an exception message where
appropriate. This allows to revert fdfb7a3c4b3a89b73ab5546b9620348bc4984d8f
"Related fdo#51252: Report uncaught exceptions with MessageBox on Windows" as
that was to catch and display failures from instantiating the service mgr.
Change-Id: I049a38e95342634796eb0e940e2ee8e55193c9d3
Diffstat (limited to 'desktop/inc')
-rw-r--r-- | desktop/inc/app.hxx | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx index 8fd717ec6f18..b1577b2afbe1 100644 --- a/desktop/inc/app.hxx +++ b/desktop/inc/app.hxx @@ -103,15 +103,16 @@ class Desktop : public Application static ResMgr* GetDesktopResManager(); static CommandLineArgs& GetCommandLineArgs(); - void HandleBootstrapErrors( BootstrapError ); - void SetBootstrapError( BootstrapError nError ) + void HandleBootstrapErrors( + BootstrapError nError, OUString const & aMessage ); + void SetBootstrapError( + BootstrapError nError, OUString const & aMessage ) { if ( m_aBootstrapError == BE_OK ) + { m_aBootstrapError = nError; - } - BootstrapError GetBootstrapError() const - { - return m_aBootstrapError; + m_aBootstrapErrorMessage = aMessage; + } } void SetBootstrapStatus( BootstrapStatus nStatus ) @@ -135,8 +136,6 @@ class Desktop : public Application void SetSplashScreenText( const ::rtl::OUString& rText ); void SetSplashScreenProgress( sal_Int32 ); - static void ensureProcessServiceFactory(); - private: // Bootstrap methods static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > CreateApplicationServiceManager(); @@ -159,9 +158,6 @@ class Desktop : public Application void HandleBootstrapPathErrors( ::utl::Bootstrap::Status, const ::rtl::OUString& aMsg ); void StartSetup( const ::rtl::OUString& aParameters ); - // Get a resource message string securely e.g. if resource cannot be retrieved return aFaultBackMsg - ::rtl::OUString GetMsgString( sal_uInt16 nId, const ::rtl::OUString& aFaultBackMsg ); - // Create a error message depending on bootstrap failure code and an optional file url ::rtl::OUString CreateErrorMsgString( utl::Bootstrap::FailureCode nFailureCode, const ::rtl::OUString& aFileURL ); @@ -200,6 +196,7 @@ class Desktop : public Application bool m_bCleanedExtensionCache; bool m_bServicesRegistered; BootstrapError m_aBootstrapError; + OUString m_aBootstrapErrorMessage; BootstrapStatus m_aBootstrapStatus; std::auto_ptr< Lockfile > m_pLockfile; |