desktop/source/app/app.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit a1faf14f74a62ea76141115538d7d30d90c9eeb6
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Wed Mar 22 14:40:04 2023 +0100
Commit:     Stephan Bergmann <[email protected]>
CommitDate: Wed Mar 22 15:01:17 2023 +0000

    rhbz#2171265 Report fatal InitApplicationServiceManager failures more 
reliably
    
    For example, when initialization of the UNO type manager failed, any code 
run
    between this SetBootstrapError and the HandleBootstrapErrors in 
Desktop::Main
    which would need the type manager (e.g., to set a css::uno::Any) would have
    caused a crash, so would have failed to print to std::cerr the sought-after
    css::uno::Exception message.  The mis-initialized process would most 
definitely
    crash sooner or later anyway, so there's no harm in a controlled 
std::abort()
    here (if that is even reached, and the process doesn't already crash in
    HandleBootstrapErrors, after it has printed the relevant information to
    std::cerr).
    
    Change-Id: Ic5889aedec0908fa4b1e2966eb188508d0f92d26
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149323
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>

diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 5a35b5a745c2..f1ec0b679bc0 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -28,6 +28,7 @@
 
 #include <sal/config.h>
 
+#include <cstdlib>
 #include <iostream>
 #include <string_view>
 
@@ -458,7 +459,8 @@ void Desktop::Init()
     }
     catch (css::uno::Exception & e)
     {
-        SetBootstrapError( BE_UNO_SERVICEMANAGER, e.Message );
+        HandleBootstrapErrors( BE_UNO_SERVICEMANAGER, e.Message );
+        std::abort();
     }
 
     // Check whether safe mode is enabled

Reply via email to