You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by hd...@apache.org on 2013/08/09 17:03:19 UTC

svn commit: r1512330 - /openoffice/trunk/main/cui/source/options/optupdt.cxx

Author: hdu
Date: Fri Aug  9 15:03:18 2013
New Revision: 1512330

URL: http://svn.apache.org/r1512330
Log:
#i122818# fix crash in online-update-check when no application is active

Closing all application windows and retaining access to the application menu
is only possible on MacOSX. The DispatchProvider used for the update check
seems to depend on having an active application window. Maybe it is possible
to get the update check working without it but this patch doesn't attempt
that, it prevent further escalation such as crashes.

Fixed by: Herbert Duerr
Debugged by: Oliver-Rainer Wittmann, Herbert Duerr
Found by: Frantisek Erben 

Modified:
    openoffice/trunk/main/cui/source/options/optupdt.cxx

Modified: openoffice/trunk/main/cui/source/options/optupdt.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/options/optupdt.cxx?rev=1512330&r1=1512329&r2=1512330&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/options/optupdt.cxx (original)
+++ openoffice/trunk/main/cui/source/options/optupdt.cxx Fri Aug  9 15:03:18 2013
@@ -371,13 +371,14 @@ IMPL_LINK( SvxOnlineUpdateTabPage, Check
         uno::Reference< frame::XDispatchProvider > xDispatchProvider(
             xDesktop->getCurrentFrame(), uno::UNO_QUERY );
 
-        uno::Reference< frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
+        uno::Reference< frame::XDispatch > xDispatch;
+        if( xDispatchProvider.is() )
+            xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
 
         if( xDispatch.is() )
-        {
             xDispatch->dispatch(aURL, uno::Sequence< beans::PropertyValue > ());
-            UpdateLastCheckedText();
-        }
+
+        UpdateLastCheckedText();
     }
     catch( const uno::Exception& e )
     {