[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - dbaccess/source

Caolán McNamara caolanm at redhat.com
Thu Feb 5 12:57:30 PST 2015


 dbaccess/source/ui/browser/sbagrid.cxx |   35 +++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

New commits:
commit eaf6618df939ac5c41281ddf6744c4e8a0f687c5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 5 10:30:48 2015 +0000

    Resolves: tdf#88825 absent datasource causes exception / abort
    
    ::dbtools::ensureRowSetConnection throws on failure, and it can fail
    of course if the database doesn't exist
    
    its not generally useful to throw through a vcl event handler as that just
    leads back to the dispatch loop.
    
    (cherry picked from commit 863122b9adecedfcf35ffac1354ef8a85d5b6827)
    
    Conflicts:
    	dbaccess/source/ui/browser/sbagrid.cxx
    
    Change-Id: I8e8f4cff06de5684f163ed1b658a8794f54a7df2
    Reviewed-on: https://gerrit.libreoffice.org/14330
    Reviewed-by: Lionel Elie Mamane <lionel at mamane.lu>
    Tested-by: Lionel Elie Mamane <lionel at mamane.lu>

diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index 1fd9685..889e94a 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -971,9 +971,9 @@ Reference< XPropertySet >  SbaGridControl::getField(sal_uInt16 nModelPos)
         else
             OSL_FAIL("SbaGridControl::getField getColumns returns NULL or ModelPos is > than count!");
     }
-    catch (const Exception&)
+    catch (const Exception& e)
     {
-        OSL_FAIL("SbaGridControl::getField Exception occurred!");
+        SAL_WARN("dbaccess", "SbaGridControl::getField Exception occurred: " << e.Message);
     }
 
     return xEmptyReturn;
@@ -984,24 +984,31 @@ bool SbaGridControl::IsReadOnlyDB() const
     // assume yes if anything fails
     bool bDBIsReadOnly = true;
 
-    // the db is the implemented by the parent of the grid control's model ...
-    Reference< XChild >  xColumns(GetPeer()->getColumns(), UNO_QUERY);
-    if (xColumns.is())
+    try
     {
-        Reference< XRowSet >  xDataSource(xColumns->getParent(), UNO_QUERY);
-        Reference< XChild >  xConn(::dbtools::getConnection(xDataSource),UNO_QUERY);
-        if (xConn.is())
+        // the db is the implemented by the parent of the grid control's model ...
+        Reference< XChild >  xColumns(GetPeer()->getColumns(), UNO_QUERY);
+        if (xColumns.is())
         {
-            // ... and the RO-flag simply is implemented by a property
-            Reference< XPropertySet >  xDbProps(xConn->getParent(), UNO_QUERY);
-            if (xDbProps.is())
+            Reference< XRowSet >  xDataSource(xColumns->getParent(), UNO_QUERY);
+            Reference< XChild >  xConn(::dbtools::getConnection(xDataSource),UNO_QUERY);
+            if (xConn.is())
             {
-                Reference< XPropertySetInfo >  xInfo = xDbProps->getPropertySetInfo();
-                if (xInfo->hasPropertyByName(PROPERTY_ISREADONLY))
-                    bDBIsReadOnly = ::comphelper::getBOOL(xDbProps->getPropertyValue(PROPERTY_ISREADONLY));
+                // ... and the RO-flag simply is implemented by a property
+                Reference< XPropertySet >  xDbProps(xConn->getParent(), UNO_QUERY);
+                if (xDbProps.is())
+                {
+                    Reference< XPropertySetInfo >  xInfo = xDbProps->getPropertySetInfo();
+                    if (xInfo->hasPropertyByName(PROPERTY_ISREADONLY))
+                        bDBIsReadOnly = ::comphelper::getBOOL(xDbProps->getPropertyValue(PROPERTY_ISREADONLY));
+                }
             }
         }
     }
+    catch (const Exception& e)
+    {
+        SAL_WARN("dbaccess", "SbaGridControl::IsReadOnlyDB Exception occurred: " << e.Message);
+    }
     return bDBIsReadOnly;
 }
 


More information about the Libreoffice-commits mailing list