[Libreoffice-commits] core.git: 9 commits - basic/source connectivity/source dbaccess/source include/connectivity include/vcl sc/source sfx2/source starmath/inc starmath/source svx/source toolkit/source vcl/inc vcl/source

Caolán McNamara caolanm at redhat.com
Tue Jul 1 08:43:46 PDT 2014


 basic/source/uno/namecont.cxx                                   |   28 ++++--
 connectivity/source/commontools/dbexception.cxx                 |   19 ++++
 connectivity/source/drivers/evoab2/NPreparedStatement.cxx       |   42 +++++-----
 connectivity/source/drivers/evoab2/NResultSet.cxx               |   34 ++++----
 connectivity/source/drivers/firebird/Connection.cxx             |    4 
 connectivity/source/drivers/firebird/PreparedStatement.cxx      |    4 
 connectivity/source/drivers/firebird/ResultSet.cxx              |   28 +++---
 connectivity/source/drivers/kab/KPreparedStatement.cxx          |   40 ++++-----
 connectivity/source/drivers/kab/KResultSet.cxx                  |   34 ++++----
 connectivity/source/drivers/macab/MacabPreparedStatement.cxx    |   40 ++++-----
 connectivity/source/drivers/macab/MacabResultSet.cxx            |   26 +++---
 connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx |   14 +--
 connectivity/source/drivers/odbc/OPreparedStatement.cxx         |   10 +-
 connectivity/source/drivers/odbc/OResultSet.cxx                 |   18 ++--
 dbaccess/source/core/api/RowSet.cxx                             |    6 -
 dbaccess/source/core/api/TableDeco.cxx                          |    2 
 dbaccess/source/core/dataaccess/documentdefinition.cxx          |   22 ++---
 include/connectivity/dbexception.hxx                            |    7 +
 include/vcl/window.hxx                                          |   38 ++++++---
 sc/source/ui/vba/vbarange.cxx                                   |    4 
 sc/source/ui/vba/vbarange.hxx                                   |    3 
 sfx2/source/doc/objstor.cxx                                     |    3 
 sfx2/source/sidebar/SidebarPanelBase.cxx                        |    4 
 starmath/inc/dialog.hxx                                         |    6 -
 starmath/source/dialog.cxx                                      |   12 +-
 svx/source/table/svdotable.cxx                                  |    2 
 svx/source/table/tablemodel.cxx                                 |   19 +---
 toolkit/source/awt/vclxwindow.cxx                               |    2 
 vcl/inc/window.h                                                |    2 
 vcl/source/window/tabdlg.cxx                                    |    4 
 vcl/source/window/window.cxx                                    |    2 
 vcl/source/window/window2.cxx                                   |   31 ++++---
 32 files changed, 280 insertions(+), 230 deletions(-)

New commits:
commit 485a7c880fd2675ff9c5fc792d4caae980b4535e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 16:21:48 2014 +0100

    coverity#735881 Dereference after null check
    
    Change-Id: I2fd45dd0ab1e0bedca7e827886949beb3f494cad

diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index 0eba6e7..72ebdc9 100644
--- a/svx/source/table/svdotable.cxx
+++ b/svx/source/table/svdotable.cxx
@@ -1750,7 +1750,7 @@ SdrTableObj& SdrTableObj::operator=(const SdrTableObj& rObj)
     bNoMirror = rObj.bNoMirror;
     bDisableAutoWidthOnDragging = rObj.bDisableAutoWidthOnDragging;
 
-    if( rObj.mpImpl )
+    if (mpImpl && rObj.mpImpl)
         *mpImpl = *rObj.mpImpl;
     return *this;
 }
commit 0820f53c0d0211f43bc820b95793c5b868f22a50
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 16:20:27 2014 +0100

    coverity#735850 Dereference after null check
    
    Change-Id: If164a92ed502502ce1b25ecddaa8852e83eb4f3c

diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 3f789e00..377a758 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -1387,8 +1387,7 @@ bool SfxObjectShell::SaveTo_Impl
 
     bool bOk = false;
     // TODO/LATER: get rid of bOk
-
-    if( bOwnTarget && !( pFilter->GetFilterFlags() & SFX_FILTER_STARONEFILTER ) )
+    if (bOwnTarget && pFilter && !(pFilter->GetFilterFlags() & SFX_FILTER_STARONEFILTER))
     {
         AddLog( OUString( OSL_LOG_PREFIX "Storing in own format."  ) );
         uno::Reference< embed::XStorage > xMedStorage = rMedium.GetStorage();
commit 4d22b8f7b46c6e93f682ac26aee1403cd5288a88
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 16:11:14 2014 +0100

    coverity#1038321 Unintended sign extension
    
    and
    
    coverity#1038320 Unintended sign extension
    coverity#1038319 Unintended sign extension
    coverity#1038318 Unintended sign extension
    coverity#1038317 Unintended sign extension
    coverity#1038316 Unintended sign extension
    coverity#1038315 Unintended sign extension
    coverity#1038314 Unintended sign extension
    
    Change-Id: Ib8015baf8ffec48e1b2d6ce1e7ce284fb36303b0

diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 24b5630..25b003d 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -259,9 +259,9 @@ class SmShowSymbolSetWindow : public Control
     SymbolPtrVec_t aSymbolSet;
     Link        aSelectHdlLink;
     Link        aDblClickHdlLink;
-    sal_uInt16  nLen;
-    sal_uInt16  nRows, nColumns;
-    sal_uInt16  nXOffset, nYOffset;
+    long        nLen;
+    long        nRows, nColumns;
+    long        nXOffset, nYOffset;
     sal_uInt16  nSelectSymbol;
 
     void SetScrollBarRange();
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 06c1115..83850e6 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -1200,16 +1200,16 @@ extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSmShowSymbolSet(Window *pPa
 void SmShowSymbolSetWindow::calccols()
 {
     // Height of 16pt in pixels (matching 'aOutputSize')
-    nLen = (sal_uInt16) LogicToPixel(Size(0, 16), MapMode(MAP_POINT)).Height();
+    nLen = LogicToPixel(Size(0, 16), MapMode(MAP_POINT)).Height();
 
     Size aOutputSize = GetOutputSizePixel();
 
-    nColumns = sal::static_int_cast< sal_uInt16 >(aOutputSize.Width() / nLen);
+    nColumns = aOutputSize.Width() / nLen;
     if (nColumns > 2  && nColumns % 2 != 0)
         --nColumns;
-    nRows = sal::static_int_cast< sal_uInt16 >(aOutputSize.Height() / nLen);
-    nColumns = std::max<sal_uInt16>(1, nColumns);
-    nRows = std::max<sal_uInt16>(1, nRows);
+    nRows = aOutputSize.Height() / nLen;
+    nColumns = std::max<long>(1, nColumns);
+    nRows = std::max<long>(1, nRows);
 
     nXOffset = (aOutputSize.Width() - (nColumns * nLen)) / 2;
     nYOffset = (aOutputSize.Height() - (nRows * nLen)) / 2;
@@ -1232,7 +1232,7 @@ void SmShowSymbolSetWindow::SetSymbolSet(const SymbolPtrVec_t& rSymbolSet)
 
 void SmShowSymbolSetWindow::SetScrollBarRange()
 {
-    if (static_cast< sal_uInt16 >(aSymbolSet.size()) > (nColumns * nRows))
+    if (aSymbolSet.size() > static_cast<size_t>(nColumns * nRows))
     {
         m_pVScrollBar->SetRange(Range(0, ((aSymbolSet.size() + (nColumns - 1)) / nColumns) - nRows));
         m_pVScrollBar->Enable(true);
commit 8a9bc476df2457870c2b41812d2828a81f67c783
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:54:55 2014 +0100

    coverity#735883 Unchecked dynamic_cast
    
    Change-Id: I4dec526d78dfaa1d894ab1be205e58e1224fbf72

diff --git a/svx/source/table/tablemodel.cxx b/svx/source/table/tablemodel.cxx
index d40c3ba..71935c3 100644
--- a/svx/source/table/tablemodel.cxx
+++ b/svx/source/table/tablemodel.cxx
@@ -1124,12 +1124,12 @@ void TableModel::merge( sal_Int32 nCol, sal_Int32 nRow, sal_Int32 nColSpan, sal_
 
     // merge first cell
     CellRef xOriginCell( dynamic_cast< Cell* >( getCellByPosition( nCol, nRow ).get() ) );
-    if( xOriginCell.is() )
-    {
-        if( bUndo )
-            xOriginCell->AddUndo();
-        xOriginCell->merge( nColSpan, nRowSpan );
-    }
+    if(!xOriginCell.is())
+        return;
+
+    if( bUndo )
+        xOriginCell->AddUndo();
+    xOriginCell->merge( nColSpan, nRowSpan );
 
     sal_Int32 nTempCol = nCol + 1;
 
@@ -1151,9 +1151,6 @@ void TableModel::merge( sal_Int32 nCol, sal_Int32 nRow, sal_Int32 nColSpan, sal_
     }
 }
 
-
-
-
 void TableModel::updateRows()
 {
     sal_Int32 nRow = 0;
@@ -1164,8 +1161,6 @@ void TableModel::updateRows()
     }
 }
 
-
-
 void TableModel::updateColumns()
 {
     sal_Int32 nColumn = 0;
@@ -1176,8 +1171,6 @@ void TableModel::updateColumns()
     }
 }
 
-
-
 } }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit a7e1ffc248bed431693c6d50c02e7c936c67f360
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:50:28 2014 +0100

    coverity#706988 Uncaught exception
    
    and
    
    coverity#706989 Uncaught exception
    
    Change-Id: I426ae26f69311effd60c0b60b7f4d677a2e35c80

diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index ef0839a..bf8a374 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -5339,7 +5339,9 @@ ScVbaRange::Previous() throw (script::BasicErrorException, uno::RuntimeException
 }
 
 uno::Reference< excel::XRange > SAL_CALL
-ScVbaRange::SpecialCells( const uno::Any& _oType, const uno::Any& _oValue) throw ( script::BasicErrorException, std::exception )
+ScVbaRange::SpecialCells( const uno::Any& _oType, const uno::Any& _oValue)
+    throw (script::BasicErrorException, uno::RuntimeException,
+           std::exception)
 {
     bool bIsSingleCell = isSingleCellRange();
     bool bIsMultiArea = ( m_Areas->getCount() > 1 );
diff --git a/sc/source/ui/vba/vbarange.hxx b/sc/source/ui/vba/vbarange.hxx
index 8d0035b..5c12276 100644
--- a/sc/source/ui/vba/vbarange.hxx
+++ b/sc/source/ui/vba/vbarange.hxx
@@ -289,7 +289,8 @@ public:
     static css::uno::Reference< ov::excel::XRange > ApplicationRange( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Any &Cell1, const css::uno::Any &Cell2 ) throw (css::uno::RuntimeException);
     static bool getCellRangesForAddress( sal_uInt16& rResFlags, const OUString& sAddress, ScDocShell* pDocSh, ScRangeList& rCellRanges, formula::FormulaGrammar::AddressConvention& eConv, char cDelimiter = 0 );
     virtual sal_Bool SAL_CALL GoalSeek( const css::uno::Any& Goal, const css::uno::Reference< ov::excel::XRange >& ChangingCell ) throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-    virtual css::uno::Reference< ov::excel::XRange > SAL_CALL SpecialCells( const css::uno::Any& _oType, const css::uno::Any& _oValue) throw ( css::script::BasicErrorException, std::exception ) SAL_OVERRIDE;
+    virtual css::uno::Reference< ov::excel::XRange > SAL_CALL SpecialCells( const css::uno::Any& _oType, const css::uno::Any& _oValue)
+        throw (css::script::BasicErrorException, css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     // XErrorQuery
     virtual sal_Bool SAL_CALL hasError(  ) throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     // XHelperInterface
commit 7950797f27ca09091e4221ea91f90e2aca98a2c5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:42:18 2014 +0100

    coverity#706468 Uncaught exception
    
    and
    
    coverity#706469 Uncaught exception
    
    Change-Id: Ia67d777b09ac7f72a94a9019765266854775c53f

diff --git a/dbaccess/source/core/dataaccess/documentdefinition.cxx b/dbaccess/source/core/dataaccess/documentdefinition.cxx
index 660d927..167a52e 100644
--- a/dbaccess/source/core/dataaccess/documentdefinition.cxx
+++ b/dbaccess/source/core/dataaccess/documentdefinition.cxx
@@ -1834,19 +1834,20 @@ Reference< XComponent > ODocumentDefinition::impl_openUI_nolck_throw( bool _bFor
     if ( !m_pImpl || !m_pImpl->m_pDataSource )
         throw DisposedException();
 
-    Reference< XDatabaseDocumentUI > xUI( lcl_getDatabaseDocumentUI( *m_pImpl->m_pDataSource ) );
-    if ( !xUI.is() )
-    {
-        // no XDatabaseDocumentUI -> just execute the respective command
-        m_bOpenInDesign = _bForEditing;
-        Reference< XComponent > xComponent( onCommandOpenSomething( Any(), true, NULL ), UNO_QUERY );
-        OSL_ENSURE( xComponent.is(), "ODocumentDefinition::impl_openUI_nolck_throw: opening the thingie failed." );
-        return xComponent;
-    }
-
     Reference< XComponent > xComponent;
     try
     {
+        Reference< XDatabaseDocumentUI > xUI( lcl_getDatabaseDocumentUI( *m_pImpl->m_pDataSource ) );
+        if ( !xUI.is() )
+        {
+            // no XDatabaseDocumentUI -> just execute the respective command
+            m_bOpenInDesign = _bForEditing;
+            xComponent = Reference<XComponent>(onCommandOpenSomething(Any(), true, NULL), UNO_QUERY);
+            OSL_ENSURE( xComponent.is(), "ODocumentDefinition::impl_openUI_nolck_throw: opening the thingie failed." );
+            return xComponent;
+        }
+
+
         OUString sName( impl_getHierarchicalName( false ) );
         sal_Int32 nObjectType = m_bForm ? DatabaseObject::FORM : DatabaseObject::REPORT;
         aGuard.clear();
@@ -1861,6 +1862,7 @@ Reference< XComponent > ODocumentDefinition::impl_openUI_nolck_throw( bool _bFor
         throw WrappedTargetException(
             OUString(), *this, ::cppu::getCaughtException() );
     }
+
     return xComponent;
 }
 
commit 968f633b247d06c958d0b5695ab1ed962509f795
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:37:44 2014 +0100

    coverity#706382 Uncaught exception
    
    and
    
    coverity#706377
    coverity#706378
    coverity#706382
    
    Change-Id: I17f672e31867b1be77c16a8a6e121a8f67df7c90

diff --git a/connectivity/source/commontools/dbexception.cxx b/connectivity/source/commontools/dbexception.cxx
index 33ea7a8..b4990e8 100644
--- a/connectivity/source/commontools/dbexception.cxx
+++ b/connectivity/source/commontools/dbexception.cxx
@@ -384,8 +384,9 @@ void throwInvalidIndexException(const ::com::sun::star::uno::Reference< ::com::s
     );
 }
 
-void throwFunctionNotSupportedException( const OUString& _rFunctionName, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
-        const ::com::sun::star::uno::Any& _rNextException ) throw ( ::com::sun::star::sdbc::SQLException )
+void throwFunctionNotSupportedSQLException(const OUString& _rFunctionName,
+    const css::uno::Reference<css::uno::XInterface>& _rxContext,
+    const css::uno::Any& _rNextException) throw (css::sdbc::SQLException)
 {
     ::connectivity::SharedResources aResources;
     const OUString sError( aResources.getResourceStringWithSubstitution(
@@ -401,6 +402,20 @@ void throwFunctionNotSupportedException( const OUString& _rFunctionName, const :
     );
 }
 
+void throwFunctionNotSupportedRuntimeException(const OUString& _rFunctionName,
+    const css::uno::Reference<css::uno::XInterface>& _rxContext) throw (css::uno::RuntimeException)
+{
+    ::connectivity::SharedResources aResources;
+    const OUString sError( aResources.getResourceStringWithSubstitution(
+            STR_UNSUPPORTED_FUNCTION,
+            "$functionname$", _rFunctionName
+         ) );
+    throw RuntimeException(
+        sError,
+        _rxContext
+    );
+}
+
 void throwGenericSQLException(const OUString& _rMsg, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxSource)
     throw (::com::sun::star::sdbc::SQLException)
 {
diff --git a/connectivity/source/drivers/evoab2/NPreparedStatement.cxx b/connectivity/source/drivers/evoab2/NPreparedStatement.cxx
index 30fdfdf..a7e72c8 100644
--- a/connectivity/source/drivers/evoab2/NPreparedStatement.cxx
+++ b/connectivity/source/drivers/evoab2/NPreparedStatement.cxx
@@ -147,7 +147,7 @@ sal_Int32 SAL_CALL OEvoabPreparedStatement::executeUpdate(  ) throw(SQLException
 
 void SAL_CALL OEvoabPreparedStatement::setString( sal_Int32 /*parameterIndex*/, const OUString& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setString", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setString", *this );
 }
 
 
@@ -171,98 +171,98 @@ Reference< XResultSet > SAL_CALL OEvoabPreparedStatement::executeQuery(  ) throw
 
 void SAL_CALL OEvoabPreparedStatement::setBoolean( sal_Int32 /*parameterIndex*/, sal_Bool /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setBoolean", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setBoolean", *this );
 
 }
 
 void SAL_CALL OEvoabPreparedStatement::setByte( sal_Int32 /*parameterIndex*/, sal_Int8 /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setByte", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setByte", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setDate( sal_Int32 /*parameterIndex*/, const Date& /*aData*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setDate", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setDate", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setTime( sal_Int32 /*parameterIndex*/, const Time& /*aVal*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setTime", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setTime", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setTimestamp( sal_Int32 /*parameterIndex*/, const DateTime& /*aVal*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setTimestamp", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setTimestamp", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setDouble( sal_Int32 /*parameterIndex*/, double /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setDouble", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setDouble", *this );
 }
 
 
 
 void SAL_CALL OEvoabPreparedStatement::setFloat( sal_Int32 /*parameterIndex*/, float /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setFloat", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setFloat", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setInt( sal_Int32 /*parameterIndex*/, sal_Int32 /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setInt", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setInt", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setLong( sal_Int32 /*parameterIndex*/, sal_Int64 /*aVal*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setLong", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setLong", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setNull( sal_Int32 /*parameterIndex*/, sal_Int32 /*sqlType*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setNull", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setNull", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setClob( sal_Int32 /*parameterIndex*/, const Reference< XClob >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setClob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setClob", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setBlob( sal_Int32 /*parameterIndex*/, const Reference< XBlob >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setBlob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setBlob", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setArray( sal_Int32 /*parameterIndex*/, const Reference< XArray >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setArray", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setArray", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setRef( sal_Int32 /*parameterIndex*/, const Reference< XRef >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setRef", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setRef", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setObjectWithInfo( sal_Int32 /*parameterIndex*/, const Any& /*x*/, sal_Int32 /*sqlType*/, sal_Int32 /*scale*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setObjectWithInfo", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setObjectWithInfo", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setObjectNull( sal_Int32 /*parameterIndex*/, sal_Int32 /*sqlType*/, const OUString& /*typeName*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setObjectNull", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setObjectNull", *this );
 }
 
 
@@ -281,26 +281,26 @@ void SAL_CALL OEvoabPreparedStatement::setObject( sal_Int32 parameterIndex, cons
 
 void SAL_CALL OEvoabPreparedStatement::setShort( sal_Int32 /*parameterIndex*/, sal_Int16 /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setShort", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setShort", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setBytes( sal_Int32 /*parameterIndex*/, const Sequence< sal_Int8 >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setBytes", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setBytes", *this );
 }
 
 
 
 void SAL_CALL OEvoabPreparedStatement::setCharacterStream( sal_Int32 /*parameterIndex*/, const Reference< XInputStream >& /*x*/, sal_Int32 /*length*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setCharacterStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setCharacterStream", *this );
 }
 
 
 void SAL_CALL OEvoabPreparedStatement::setBinaryStream( sal_Int32 /*parameterIndex*/, const Reference< XInputStream >& /*x*/, sal_Int32 /*length*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setBinaryStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setBinaryStream", *this );
 }
 
 
diff --git a/connectivity/source/drivers/evoab2/NResultSet.cxx b/connectivity/source/drivers/evoab2/NResultSet.cxx
index f0731e0..81f3bb8 100644
--- a/connectivity/source/drivers/evoab2/NResultSet.cxx
+++ b/connectivity/source/drivers/evoab2/NResultSet.cxx
@@ -781,103 +781,103 @@ sal_Bool SAL_CALL OEvoabResultSet::getBoolean( sal_Int32 nColumnNum ) throw(SQLE
 
 sal_Int64 SAL_CALL OEvoabResultSet::getLong( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getLong", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getLong", *this );
     return sal_Int64();
 }
 
 Reference< XArray > SAL_CALL OEvoabResultSet::getArray( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getArray", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getArray", *this );
     return NULL;
 }
 
 Reference< XClob > SAL_CALL OEvoabResultSet::getClob( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getClob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getClob", *this );
     return NULL;
 }
 
 Reference< XBlob > SAL_CALL OEvoabResultSet::getBlob( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBlob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBlob", *this );
     return NULL;
 }
 
 Reference< XRef > SAL_CALL OEvoabResultSet::getRef( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getRef", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getRef", *this );
     return NULL;
 }
 
 Any SAL_CALL OEvoabResultSet::getObject( sal_Int32 /*nColumnNum*/, const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getObject", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getObject", *this );
     return Any();
 }
 
 sal_Int16 SAL_CALL OEvoabResultSet::getShort( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getShort", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getShort", *this );
     return 0;
 }
 
 ::com::sun::star::util::Time SAL_CALL OEvoabResultSet::getTime( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getTime", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getTime", *this );
     return ::com::sun::star::util::Time();
 }
 
 util::DateTime SAL_CALL OEvoabResultSet::getTimestamp( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getTimestamp", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getTimestamp", *this );
     return ::com::sun::star::util::DateTime();
 }
 
 Reference< XInputStream > SAL_CALL OEvoabResultSet::getBinaryStream( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBinaryStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBinaryStream", *this );
     return NULL;
 }
 
 Reference< XInputStream > SAL_CALL OEvoabResultSet::getCharacterStream( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getCharacterStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getCharacterStream", *this );
     return NULL;
 }
 
 sal_Int8 SAL_CALL OEvoabResultSet::getByte( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getByte", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getByte", *this );
     return 0;
 }
 
 Sequence< sal_Int8 > SAL_CALL OEvoabResultSet::getBytes( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBytes", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBytes", *this );
     return Sequence< sal_Int8 >();
 }
 
 ::com::sun::star::util::Date SAL_CALL OEvoabResultSet::getDate( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getDate", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getDate", *this );
     return ::com::sun::star::util::Date();
 }
 
 double SAL_CALL OEvoabResultSet::getDouble( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getDouble", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getDouble", *this );
     return 0;
 }
 
 float SAL_CALL OEvoabResultSet::getFloat( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getFloat", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getFloat", *this );
     return 0;
 }
 
 sal_Int32 SAL_CALL OEvoabResultSet::getInt( sal_Int32 /*nColumnNum*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getInt", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getInt", *this );
     return 0;
 }
 // XRow Interface Ends
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 2d846d8..14e5a5a 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -575,13 +575,13 @@ sal_Bool SAL_CALL Connection::isReadOnly() throw(SQLException, RuntimeException,
 void SAL_CALL Connection::setCatalog(const OUString& /*catalog*/)
     throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("setCatalog", *this);
+    ::dbtools::throwFunctionNotSupportedSQLException("setCatalog", *this);
 }
 
 OUString SAL_CALL Connection::getCatalog()
     throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("getCatalog", *this);
+    ::dbtools::throwFunctionNotSupportedSQLException("getCatalog", *this);
     return OUString();
 }
 
diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
index 3c40ecd..bd8fdaa 100644
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -324,7 +324,7 @@ void SAL_CALL OPreparedStatement::setBoolean(sal_Int32 /*nIndex*/, sal_Bool /*bV
     throw(SQLException, RuntimeException, std::exception)
 {
     // FIREBIRD3: will need to be implemented.
-    ::dbtools::throwFunctionNotSupportedException("XParameters::setBoolean", *this);
+    ::dbtools::throwFunctionNotSupportedSQLException("XParameters::setBoolean", *this);
 }
 
 template <typename T>
@@ -354,7 +354,7 @@ void OPreparedStatement::setValue(sal_Int32 nIndex, T& nValue, ISC_SHORT nType)
 void SAL_CALL OPreparedStatement::setByte(sal_Int32 /*nIndex*/, sal_Int8 /*nValue*/)
     throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("XParameters::setByte", *this);
+    ::dbtools::throwFunctionNotSupportedSQLException("XParameters::setByte", *this);
 }
 
 void SAL_CALL OPreparedStatement::setShort(sal_Int32 nIndex, sal_Int16 nValue)
diff --git a/connectivity/source/drivers/firebird/ResultSet.cxx b/connectivity/source/drivers/firebird/ResultSet.cxx
index 4f8cc5d..6d702b2 100644
--- a/connectivity/source/drivers/firebird/ResultSet.cxx
+++ b/connectivity/source/drivers/firebird/ResultSet.cxx
@@ -153,14 +153,14 @@ sal_Bool SAL_CALL OResultSet::next() throw(SQLException, RuntimeException, std::
 
 sal_Bool SAL_CALL OResultSet::previous() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("previous not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("previous not supported in firebird",
                                                   *this);
     return sal_False;
 }
 
 sal_Bool SAL_CALL OResultSet::isLast() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("isLast not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("isLast not supported in firebird",
                                                   *this);
     return sal_False;
 }
@@ -195,7 +195,7 @@ void SAL_CALL OResultSet::beforeFirst() throw(SQLException, RuntimeException, st
     checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
 
     if (m_currentRow != 0)
-        ::dbtools::throwFunctionNotSupportedException("beforeFirst not supported in firebird",
+        ::dbtools::throwFunctionNotSupportedSQLException("beforeFirst not supported in firebird",
                                                       *this);
 }
 
@@ -205,7 +205,7 @@ void SAL_CALL OResultSet::afterLast() throw(SQLException, RuntimeException, std:
     checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
 
     if (!m_bIsAfterLastRow)
-        ::dbtools::throwFunctionNotSupportedException("afterLast not supported in firebird",
+        ::dbtools::throwFunctionNotSupportedSQLException("afterLast not supported in firebird",
                                                       *this);
 }
 
@@ -224,7 +224,7 @@ sal_Bool SAL_CALL OResultSet::first() throw(SQLException, RuntimeException, std:
     }
     else
     {
-        ::dbtools::throwFunctionNotSupportedException("first not supported in firebird",
+        ::dbtools::throwFunctionNotSupportedSQLException("first not supported in firebird",
                                                       *this);
         return sal_False;
     }
@@ -234,7 +234,7 @@ sal_Bool SAL_CALL OResultSet::last() throw(SQLException, RuntimeException, std::
 {
     // We need to iterate past the last row to know when we've passed the last
     // row, hence we can't actually move to last.
-    ::dbtools::throwFunctionNotSupportedException("last not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("last not supported in firebird",
                                                   *this);
     return sal_False;
 }
@@ -251,7 +251,7 @@ sal_Bool SAL_CALL OResultSet::absolute(sal_Int32 aRow) throw(SQLException, Runti
     }
     else
     {
-        ::dbtools::throwFunctionNotSupportedException("absolute not supported in firebird",
+        ::dbtools::throwFunctionNotSupportedSQLException("absolute not supported in firebird",
                                                       *this);
         return sal_False;
     }
@@ -273,7 +273,7 @@ sal_Bool SAL_CALL OResultSet::relative(sal_Int32 row) throw(SQLException, Runtim
     }
     else
     {
-        ::dbtools::throwFunctionNotSupportedException("relative not supported in firebird",
+        ::dbtools::throwFunctionNotSupportedSQLException("relative not supported in firebird",
                                                       *this);
         return sal_False;
     }
@@ -723,27 +723,27 @@ uno::Reference< XInterface > SAL_CALL OResultSet::getStatement()
 //----- XResultSet: unsupported change detection methods ---------------------
 sal_Bool SAL_CALL OResultSet::rowDeleted() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("rowDeleted not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("rowDeleted not supported in firebird",
                                                   *this);
     return sal_False;
 }
 sal_Bool SAL_CALL OResultSet::rowInserted() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("rowInserted not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("rowInserted not supported in firebird",
                                                   *this);
     return sal_False;
 }
 
 sal_Bool SAL_CALL OResultSet::rowUpdated() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("rowUpdated not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("rowUpdated not supported in firebird",
                                                   *this);
     return sal_False;
 }
 
 void SAL_CALL OResultSet::refreshRow() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("refreshRow not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("refreshRow not supported in firebird",
                                                   *this);
 }
 
@@ -759,13 +759,13 @@ void SAL_CALL OResultSet::cancel(  ) throw(RuntimeException, std::exception)
 #if 0
 void SAL_CALL OResultSet::clearWarnings() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("clearWarnings not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("clearWarnings not supported in firebird",
                                                   *this);
 }
 
 Any SAL_CALL OResultSet::getWarnings() throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException("getWarnings not supported in firebird",
+    ::dbtools::throwFunctionNotSupportedSQLException("getWarnings not supported in firebird",
                                                   *this);
     return Any();
 }
diff --git a/connectivity/source/drivers/kab/KPreparedStatement.cxx b/connectivity/source/drivers/kab/KPreparedStatement.cxx
index 53bd709..e97298e 100644
--- a/connectivity/source/drivers/kab/KPreparedStatement.cxx
+++ b/connectivity/source/drivers/kab/KPreparedStatement.cxx
@@ -192,7 +192,7 @@ void SAL_CALL KabPreparedStatement::setObjectNull(sal_Int32, sal_Int32, const OU
 
 
 
-::dbtools::throwFunctionNotSupportedException("setObjectNull", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setObjectNull", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setBoolean(sal_Int32, sal_Bool) throw(SQLException, RuntimeException, std::exception)
@@ -200,7 +200,7 @@ void SAL_CALL KabPreparedStatement::setBoolean(sal_Int32, sal_Bool) throw(SQLExc
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBoolean", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBoolean", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setByte(sal_Int32, sal_Int8) throw(SQLException, RuntimeException, std::exception)
@@ -208,7 +208,7 @@ void SAL_CALL KabPreparedStatement::setByte(sal_Int32, sal_Int8) throw(SQLExcept
 
 
 
-::dbtools::throwFunctionNotSupportedException("setByte", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setByte", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setShort(sal_Int32, sal_Int16) throw(SQLException, RuntimeException, std::exception)
@@ -216,7 +216,7 @@ void SAL_CALL KabPreparedStatement::setShort(sal_Int32, sal_Int16) throw(SQLExce
 
 
 
-::dbtools::throwFunctionNotSupportedException("setShort", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setShort", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setInt(sal_Int32, sal_Int32) throw(SQLException, RuntimeException, std::exception)
@@ -224,7 +224,7 @@ void SAL_CALL KabPreparedStatement::setInt(sal_Int32, sal_Int32) throw(SQLExcept
 
 
 
-::dbtools::throwFunctionNotSupportedException("setInt", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setInt", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setLong(sal_Int32, sal_Int64) throw(SQLException, RuntimeException, std::exception)
@@ -232,7 +232,7 @@ void SAL_CALL KabPreparedStatement::setLong(sal_Int32, sal_Int64) throw(SQLExcep
 
 
 
-::dbtools::throwFunctionNotSupportedException("", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setFloat(sal_Int32, float) throw(SQLException, RuntimeException, std::exception)
@@ -240,7 +240,7 @@ void SAL_CALL KabPreparedStatement::setFloat(sal_Int32, float) throw(SQLExceptio
 
 
 
-::dbtools::throwFunctionNotSupportedException("setFloat", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setFloat", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setDouble(sal_Int32, double) throw(SQLException, RuntimeException, std::exception)
@@ -248,7 +248,7 @@ void SAL_CALL KabPreparedStatement::setDouble(sal_Int32, double) throw(SQLExcept
 
 
 
-::dbtools::throwFunctionNotSupportedException("setDouble", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setDouble", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setString(sal_Int32 parameterIndex, const OUString &x) throw(SQLException, RuntimeException, std::exception)
@@ -266,7 +266,7 @@ void SAL_CALL KabPreparedStatement::setBytes(sal_Int32, const Sequence< sal_Int8
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBytes", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBytes", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setDate(sal_Int32, const Date&) throw(SQLException, RuntimeException, std::exception)
@@ -274,7 +274,7 @@ void SAL_CALL KabPreparedStatement::setDate(sal_Int32, const Date&) throw(SQLExc
 
 
 
-::dbtools::throwFunctionNotSupportedException("setDate", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setDate", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setTime(sal_Int32, const Time&) throw(SQLException, RuntimeException, std::exception)
@@ -282,7 +282,7 @@ void SAL_CALL KabPreparedStatement::setTime(sal_Int32, const Time&) throw(SQLExc
 
 
 
-::dbtools::throwFunctionNotSupportedException("setTime", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setTime", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setTimestamp(sal_Int32, const DateTime&) throw(SQLException, RuntimeException, std::exception)
@@ -290,7 +290,7 @@ void SAL_CALL KabPreparedStatement::setTimestamp(sal_Int32, const DateTime&) thr
 
 
 
-::dbtools::throwFunctionNotSupportedException("setTimestamp", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setTimestamp", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setBinaryStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException, std::exception)
@@ -298,7 +298,7 @@ void SAL_CALL KabPreparedStatement::setBinaryStream(sal_Int32, const Reference<
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBinaryStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBinaryStream", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setCharacterStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException, std::exception)
@@ -306,7 +306,7 @@ void SAL_CALL KabPreparedStatement::setCharacterStream(sal_Int32, const Referenc
 
 
 
-::dbtools::throwFunctionNotSupportedException("setCharacterStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setCharacterStream", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException, std::exception)
@@ -322,7 +322,7 @@ void SAL_CALL KabPreparedStatement::setObjectWithInfo(sal_Int32, const Any&, sal
 
 
 
-::dbtools::throwFunctionNotSupportedException("setObjectWithInfo", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setObjectWithInfo", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setRef(sal_Int32, const Reference< XRef >&) throw(SQLException, RuntimeException, std::exception)
@@ -330,7 +330,7 @@ void SAL_CALL KabPreparedStatement::setRef(sal_Int32, const Reference< XRef >&)
 
 
 
-::dbtools::throwFunctionNotSupportedException("setRef", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setRef", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setBlob(sal_Int32, const Reference< XBlob >&) throw(SQLException, RuntimeException, std::exception)
@@ -338,7 +338,7 @@ void SAL_CALL KabPreparedStatement::setBlob(sal_Int32, const Reference< XBlob >&
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBlob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBlob", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setClob(sal_Int32, const Reference< XClob >&) throw(SQLException, RuntimeException, std::exception)
@@ -346,7 +346,7 @@ void SAL_CALL KabPreparedStatement::setClob(sal_Int32, const Reference< XClob >&
 
 
 
-::dbtools::throwFunctionNotSupportedException("setClob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setClob", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::setArray(sal_Int32, const Reference< XArray >&) throw(SQLException, RuntimeException, std::exception)
@@ -354,12 +354,12 @@ void SAL_CALL KabPreparedStatement::setArray(sal_Int32, const Reference< XArray
 
 
 
-::dbtools::throwFunctionNotSupportedException("setArray", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setArray", NULL);
 }
 
 void SAL_CALL KabPreparedStatement::clearParameters() throw(SQLException, RuntimeException, std::exception)
 {
-::dbtools::throwFunctionNotSupportedException("clearParameters", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("clearParameters", NULL);
 }
 
 void KabPreparedStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception, std::exception)
diff --git a/connectivity/source/drivers/kab/KResultSet.cxx b/connectivity/source/drivers/kab/KResultSet.cxx
index ad7f98cb..08ca702 100644
--- a/connectivity/source/drivers/kab/KResultSet.cxx
+++ b/connectivity/source/drivers/kab/KResultSet.cxx
@@ -211,7 +211,7 @@ sal_Bool SAL_CALL KabResultSet::getBoolean(sal_Int32) throw(SQLException, Runtim
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBoolean", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBoolean", NULL);
 
     return sal_False;
 }
@@ -221,7 +221,7 @@ sal_Int8 SAL_CALL KabResultSet::getByte(sal_Int32) throw(SQLException, RuntimeEx
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getByte", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getByte", NULL);
 
     sal_Int8 nRet = 0;
     return nRet;
@@ -232,7 +232,7 @@ sal_Int16 SAL_CALL KabResultSet::getShort(sal_Int32) throw(SQLException, Runtime
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getShort", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getShort", NULL);
 
     sal_Int16 nRet = 0;
     return nRet;
@@ -243,7 +243,7 @@ sal_Int32 SAL_CALL KabResultSet::getInt(sal_Int32) throw(SQLException, RuntimeEx
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getInt", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getInt", NULL);
 
     sal_Int32 nRet = 0;
     return nRet;
@@ -254,7 +254,7 @@ sal_Int64 SAL_CALL KabResultSet::getLong(sal_Int32) throw(SQLException, RuntimeE
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getLong", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getLong", NULL);
 
     return sal_Int64();
 }
@@ -264,7 +264,7 @@ float SAL_CALL KabResultSet::getFloat(sal_Int32) throw(SQLException, RuntimeExce
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getFloat", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getFloat", NULL);
 
     float nVal(0);
     return nVal;
@@ -275,7 +275,7 @@ double SAL_CALL KabResultSet::getDouble(sal_Int32) throw(SQLException, RuntimeEx
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getDouble", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getDouble", NULL);
 
     double nRet = 0;
     return nRet;
@@ -286,7 +286,7 @@ Sequence< sal_Int8 > SAL_CALL KabResultSet::getBytes(sal_Int32) throw(SQLExcepti
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("", NULL);
 
     return Sequence< sal_Int8 >();
 }
@@ -296,7 +296,7 @@ cssu::Date SAL_CALL KabResultSet::getDate(sal_Int32) throw(SQLException, Runtime
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getDate", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getDate", NULL);
 
     cssu::Date aRet;
     return aRet;
@@ -307,7 +307,7 @@ cssu::Time SAL_CALL KabResultSet::getTime(sal_Int32) throw(SQLException, Runtime
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getTime", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getTime", NULL);
 
     cssu::Time nRet;
     return nRet;
@@ -357,7 +357,7 @@ Reference< XInputStream > SAL_CALL KabResultSet::getBinaryStream(sal_Int32) thro
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBinaryStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBinaryStream", NULL);
 
     return NULL;
 }
@@ -367,7 +367,7 @@ Reference< XInputStream > SAL_CALL KabResultSet::getCharacterStream(sal_Int32) t
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getCharacterStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getCharacterStream", NULL);
 
     return NULL;
 }
@@ -377,7 +377,7 @@ Any SAL_CALL KabResultSet::getObject(sal_Int32, const Reference< ::com::sun::sta
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getObject", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getObject", NULL);
 
     return Any();
 }
@@ -387,7 +387,7 @@ Reference< XRef > SAL_CALL KabResultSet::getRef(sal_Int32) throw(SQLException, R
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getRef", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getRef", NULL);
 
     return NULL;
 }
@@ -397,7 +397,7 @@ Reference< XBlob > SAL_CALL KabResultSet::getBlob(sal_Int32) throw(SQLException,
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBlob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBlob", NULL);
 
     return NULL;
 }
@@ -407,7 +407,7 @@ Reference< XClob > SAL_CALL KabResultSet::getClob(sal_Int32) throw(SQLException,
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getClob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getClob", NULL);
 
     return NULL;
 }
@@ -417,7 +417,7 @@ Reference< XArray > SAL_CALL KabResultSet::getArray(sal_Int32) throw(SQLExceptio
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getArray", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getArray", NULL);
 
     return NULL;
 }
diff --git a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx b/connectivity/source/drivers/macab/MacabPreparedStatement.cxx
index 7b7ac3b..9ef8cc0 100644
--- a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx
+++ b/connectivity/source/drivers/macab/MacabPreparedStatement.cxx
@@ -205,7 +205,7 @@ void SAL_CALL MacabPreparedStatement::setObjectNull(sal_Int32, sal_Int32, const
 
 
 
-::dbtools::throwFunctionNotSupportedException("setObjectNull", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setObjectNull", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setBoolean(sal_Int32, sal_Bool) throw(SQLException, RuntimeException)
@@ -213,7 +213,7 @@ void SAL_CALL MacabPreparedStatement::setBoolean(sal_Int32, sal_Bool) throw(SQLE
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBoolean", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBoolean", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setByte(sal_Int32, sal_Int8) throw(SQLException, RuntimeException)
@@ -221,7 +221,7 @@ void SAL_CALL MacabPreparedStatement::setByte(sal_Int32, sal_Int8) throw(SQLExce
 
 
 
-::dbtools::throwFunctionNotSupportedException("setByte", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setByte", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setShort(sal_Int32, sal_Int16) throw(SQLException, RuntimeException)
@@ -229,7 +229,7 @@ void SAL_CALL MacabPreparedStatement::setShort(sal_Int32, sal_Int16) throw(SQLEx
 
 
 
-::dbtools::throwFunctionNotSupportedException("setShort", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setShort", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setInt(sal_Int32, sal_Int32) throw(SQLException, RuntimeException)
@@ -237,7 +237,7 @@ void SAL_CALL MacabPreparedStatement::setInt(sal_Int32, sal_Int32) throw(SQLExce
 
 
 
-::dbtools::throwFunctionNotSupportedException("setInt", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setInt", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setLong(sal_Int32, sal_Int64) throw(SQLException, RuntimeException)
@@ -245,7 +245,7 @@ void SAL_CALL MacabPreparedStatement::setLong(sal_Int32, sal_Int64) throw(SQLExc
 
 
 
-::dbtools::throwFunctionNotSupportedException("setLong", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setLong", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setFloat(sal_Int32, float) throw(SQLException, RuntimeException)
@@ -253,7 +253,7 @@ void SAL_CALL MacabPreparedStatement::setFloat(sal_Int32, float) throw(SQLExcept
 
 
 
-::dbtools::throwFunctionNotSupportedException("setFloat", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setFloat", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setDouble(sal_Int32, double) throw(SQLException, RuntimeException)
@@ -261,7 +261,7 @@ void SAL_CALL MacabPreparedStatement::setDouble(sal_Int32, double) throw(SQLExce
 
 
 
-::dbtools::throwFunctionNotSupportedException("setDouble", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setDouble", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setString(sal_Int32 parameterIndex, const OUString &x) throw(SQLException, RuntimeException)
@@ -279,7 +279,7 @@ void SAL_CALL MacabPreparedStatement::setBytes(sal_Int32, const Sequence< sal_In
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBytes", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBytes", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setDate(sal_Int32, const Date&) throw(SQLException, RuntimeException)
@@ -287,7 +287,7 @@ void SAL_CALL MacabPreparedStatement::setDate(sal_Int32, const Date&) throw(SQLE
 
 
 
-::dbtools::throwFunctionNotSupportedException("setDate", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setDate", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setTime(sal_Int32, const Time&) throw(SQLException, RuntimeException)
@@ -295,7 +295,7 @@ void SAL_CALL MacabPreparedStatement::setTime(sal_Int32, const Time&) throw(SQLE
 
 
 
-::dbtools::throwFunctionNotSupportedException("setTime", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setTime", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setTimestamp(sal_Int32, const DateTime&) throw(SQLException, RuntimeException)
@@ -303,7 +303,7 @@ void SAL_CALL MacabPreparedStatement::setTimestamp(sal_Int32, const DateTime&) t
 
 
 
-::dbtools::throwFunctionNotSupportedException("setTimestamp", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setTimestamp", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setBinaryStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException)
@@ -311,7 +311,7 @@ void SAL_CALL MacabPreparedStatement::setBinaryStream(sal_Int32, const Reference
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBinaryStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBinaryStream", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setCharacterStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException)
@@ -319,7 +319,7 @@ void SAL_CALL MacabPreparedStatement::setCharacterStream(sal_Int32, const Refere
 
 
 
-::dbtools::throwFunctionNotSupportedException("setCharacterStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setCharacterStream", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException)
@@ -339,7 +339,7 @@ void SAL_CALL MacabPreparedStatement::setObjectWithInfo(sal_Int32, const Any&, s
 
 
 
-::dbtools::throwFunctionNotSupportedException("setObjectWithInfo", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setObjectWithInfo", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setRef(sal_Int32, const Reference< XRef >&) throw(SQLException, RuntimeException)
@@ -347,7 +347,7 @@ void SAL_CALL MacabPreparedStatement::setRef(sal_Int32, const Reference< XRef >&
 
 
 
-::dbtools::throwFunctionNotSupportedException("setRef", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setRef", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setBlob(sal_Int32, const Reference< XBlob >&) throw(SQLException, RuntimeException)
@@ -355,7 +355,7 @@ void SAL_CALL MacabPreparedStatement::setBlob(sal_Int32, const Reference< XBlob
 
 
 
-::dbtools::throwFunctionNotSupportedException("setBlob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setBlob", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setClob(sal_Int32, const Reference< XClob >&) throw(SQLException, RuntimeException)
@@ -363,7 +363,7 @@ void SAL_CALL MacabPreparedStatement::setClob(sal_Int32, const Reference< XClob
 
 
 
-::dbtools::throwFunctionNotSupportedException("setClob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setClob", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::setArray(sal_Int32, const Reference< XArray >&) throw(SQLException, RuntimeException)
@@ -371,12 +371,12 @@ void SAL_CALL MacabPreparedStatement::setArray(sal_Int32, const Reference< XArra
 
 
 
-::dbtools::throwFunctionNotSupportedException("setArray", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("setArray", NULL);
 }
 
 void SAL_CALL MacabPreparedStatement::clearParameters() throw(SQLException, RuntimeException)
 {
-::dbtools::throwFunctionNotSupportedException("clearParameters", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("clearParameters", NULL);
 }
 
 void MacabPreparedStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception)
diff --git a/connectivity/source/drivers/macab/MacabResultSet.cxx b/connectivity/source/drivers/macab/MacabResultSet.cxx
index 0e3aee4..be90b12 100644
--- a/connectivity/source/drivers/macab/MacabResultSet.cxx
+++ b/connectivity/source/drivers/macab/MacabResultSet.cxx
@@ -229,7 +229,7 @@ sal_Bool SAL_CALL MacabResultSet::getBoolean(sal_Int32) throw(SQLException, Runt
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBoolean", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBoolean", NULL);
 
     return sal_False;
 }
@@ -239,7 +239,7 @@ sal_Int8 SAL_CALL MacabResultSet::getByte(sal_Int32) throw(SQLException, Runtime
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getByte", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getByte", NULL);
 
     sal_Int8 nRet = 0;
     return nRet;
@@ -250,7 +250,7 @@ sal_Int16 SAL_CALL MacabResultSet::getShort(sal_Int32) throw(SQLException, Runti
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getShort", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getShort", NULL);
 
     sal_Int16 nRet = 0;
     return nRet;
@@ -377,7 +377,7 @@ Sequence< sal_Int8 > SAL_CALL MacabResultSet::getBytes(sal_Int32) throw(SQLExcep
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBytes", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBytes", NULL);
 
     return Sequence< sal_Int8 >();
 }
@@ -387,7 +387,7 @@ Date SAL_CALL MacabResultSet::getDate(sal_Int32) throw(SQLException, RuntimeExce
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getDate", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getDate", NULL);
 
     Date aRet;
     return aRet;
@@ -398,7 +398,7 @@ Time SAL_CALL MacabResultSet::getTime(sal_Int32) throw(SQLException, RuntimeExce
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getTime", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getTime", NULL);
 
     Time nRet;
     return nRet;
@@ -436,7 +436,7 @@ Reference< XInputStream > SAL_CALL MacabResultSet::getBinaryStream(sal_Int32) th
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBinaryStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBinaryStream", NULL);
 
     return NULL;
 }
@@ -446,7 +446,7 @@ Reference< XInputStream > SAL_CALL MacabResultSet::getCharacterStream(sal_Int32)
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getCharacterStream", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getCharacterStream", NULL);
 
     return NULL;
 }
@@ -456,7 +456,7 @@ Any SAL_CALL MacabResultSet::getObject(sal_Int32, const Reference< ::com::sun::s
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getObject", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getObject", NULL);
 
     return Any();
 }
@@ -466,7 +466,7 @@ Reference< XRef > SAL_CALL MacabResultSet::getRef(sal_Int32) throw(SQLException,
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getRef", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getRef", NULL);
 
     return NULL;
 }
@@ -476,7 +476,7 @@ Reference< XBlob > SAL_CALL MacabResultSet::getBlob(sal_Int32) throw(SQLExceptio
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getBlob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getBlob", NULL);
 
     return NULL;
 }
@@ -486,7 +486,7 @@ Reference< XClob > SAL_CALL MacabResultSet::getClob(sal_Int32) throw(SQLExceptio
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getClob", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getClob", NULL);
 
     return NULL;
 }
@@ -496,7 +496,7 @@ Reference< XArray > SAL_CALL MacabResultSet::getArray(sal_Int32) throw(SQLExcept
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed);
 
-::dbtools::throwFunctionNotSupportedException("getArray", NULL);
+::dbtools::throwFunctionNotSupportedSQLException("getArray", NULL);
 
     return NULL;
 }
diff --git a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
index 7a2d3dc..ecc8bda 100644
--- a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+++ b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
@@ -195,13 +195,13 @@ template < typename T, SQLSMALLINT sqlTypeId > T ODatabaseMetaDataResultSet::get
 
 Reference< ::com::sun::star::io::XInputStream > SAL_CALL ODatabaseMetaDataResultSet::getBinaryStream( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBinaryStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBinaryStream", *this );
     return NULL;
 }
 
 Reference< ::com::sun::star::io::XInputStream > SAL_CALL ODatabaseMetaDataResultSet::getCharacterStream( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getCharacterStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getCharacterStream", *this );
     return NULL;
 }
 
@@ -353,33 +353,33 @@ Reference< XResultSetMetaData > SAL_CALL ODatabaseMetaDataResultSet::getMetaData
 
 Reference< XArray > SAL_CALL ODatabaseMetaDataResultSet::getArray( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getArray", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getArray", *this );
     return NULL;
 }
 
 Reference< XClob > SAL_CALL ODatabaseMetaDataResultSet::getClob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getClob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getClob", *this );
     return NULL;
 }
 
 Reference< XBlob > SAL_CALL ODatabaseMetaDataResultSet::getBlob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBlob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBlob", *this );
     return NULL;
 }
 
 
 Reference< XRef > SAL_CALL ODatabaseMetaDataResultSet::getRef( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getRef", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getRef", *this );
     return NULL;
 }
 
 
 Any SAL_CALL ODatabaseMetaDataResultSet::getObject( sal_Int32 /*columnIndex*/, const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getObject", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getObject", *this );
     return Any();
 }
 
diff --git a/connectivity/source/drivers/odbc/OPreparedStatement.cxx b/connectivity/source/drivers/odbc/OPreparedStatement.cxx
index ec2c172..ba402bb 100644
--- a/connectivity/source/drivers/odbc/OPreparedStatement.cxx
+++ b/connectivity/source/drivers/odbc/OPreparedStatement.cxx
@@ -570,13 +570,13 @@ void SAL_CALL OPreparedStatement::setBlob( sal_Int32 parameterIndex, const Refer
 
 void SAL_CALL OPreparedStatement::setArray( sal_Int32 /*parameterIndex*/, const Reference< XArray >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setArray", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setArray", *this );
 }
 
 
 void SAL_CALL OPreparedStatement::setRef( sal_Int32 /*parameterIndex*/, const Reference< XRef >& /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XParameters::setRef", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XParameters::setRef", *this );
 }
 
 void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, const Any& x, sal_Int32 sqlType, sal_Int32 scale ) throw(SQLException, RuntimeException, std::exception)
@@ -674,7 +674,7 @@ void SAL_CALL OPreparedStatement::clearParameters(  ) throw(SQLException, Runtim
 
 void SAL_CALL OPreparedStatement::clearBatch(  ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XPreparedBatchExecution::clearBatch", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XPreparedBatchExecution::clearBatch", *this );
     //  clearParameters(  );
     //  m_aBatchList.erase();
 }
@@ -682,13 +682,13 @@ void SAL_CALL OPreparedStatement::clearBatch(  ) throw(SQLException, RuntimeExce
 
 void SAL_CALL OPreparedStatement::addBatch( ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XPreparedBatchExecution::addBatch", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XPreparedBatchExecution::addBatch", *this );
 }
 
 
 Sequence< sal_Int32 > SAL_CALL OPreparedStatement::executeBatch(  ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XPreparedBatchExecution::executeBatch", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XPreparedBatchExecution::executeBatch", *this );
     // not reached, but keep -Werror happy
     return Sequence< sal_Int32 > ();
 }
diff --git a/connectivity/source/drivers/odbc/OResultSet.cxx b/connectivity/source/drivers/odbc/OResultSet.cxx
index fd70b4a..5cda922 100644
--- a/connectivity/source/drivers/odbc/OResultSet.cxx
+++ b/connectivity/source/drivers/odbc/OResultSet.cxx
@@ -427,7 +427,7 @@ Reference< XInputStream > SAL_CALL OResultSet::getBinaryStream( sal_Int32 /*colu
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
 
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBinaryStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBinaryStream", *this );
 
     return NULL;
 }
@@ -437,7 +437,7 @@ Reference< XInputStream > SAL_CALL OResultSet::getCharacterStream( sal_Int32 /*c
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
 
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBinaryStream", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBinaryStream", *this );
 
     return NULL;
 }
@@ -593,7 +593,7 @@ Reference< XResultSetMetaData > SAL_CALL OResultSet::getMetaData(  ) throw(SQLEx
 
 Reference< XArray > SAL_CALL OResultSet::getArray( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getArray", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getArray", *this );
     return NULL;
 }
 
@@ -601,20 +601,20 @@ Reference< XArray > SAL_CALL OResultSet::getArray( sal_Int32 /*columnIndex*/ ) t
 
 Reference< XClob > SAL_CALL OResultSet::getClob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getClob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getClob", *this );
     return NULL;
 }
 
 Reference< XBlob > SAL_CALL OResultSet::getBlob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getBlob", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getBlob", *this );
     return NULL;
 }
 
 
 Reference< XRef > SAL_CALL OResultSet::getRef( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRow::getRef", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRow::getRef", *this );
     return NULL;
 }
 
@@ -1061,7 +1061,7 @@ void SAL_CALL OResultSet::updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(
 
 void SAL_CALL OResultSet::updateLong( sal_Int32 /*columnIndex*/, sal_Int64 /*x*/ ) throw(SQLException, RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRowUpdate::updateLong", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRowUpdate::updateLong", *this );
 }
 
 void SAL_CALL OResultSet::updateFloat( sal_Int32 columnIndex, float x ) throw(SQLException, RuntimeException, std::exception)
@@ -1250,7 +1250,7 @@ sal_Bool SAL_CALL OResultSet::hasOrderedBookmarks(  ) throw( SQLException,  Runt
 
 sal_Int32 SAL_CALL OResultSet::hashBookmark( const  Any& /*bookmark*/ ) throw( SQLException,  RuntimeException, std::exception)
 {
-    ::dbtools::throwFunctionNotSupportedException( "XRowLocate::hashBookmark", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "XRowLocate::hashBookmark", *this );
     return 0;
 }
 
@@ -1386,7 +1386,7 @@ bool  OResultSet::isBookmarkable() const
 
 void OResultSet::setFetchDirection(sal_Int32 _par0)
 {
-    ::dbtools::throwFunctionNotSupportedException( "setFetchDirection", *this );
+    ::dbtools::throwFunctionNotSupportedSQLException( "setFetchDirection", *this );
 
     OSL_ENSURE(_par0>0,"Illegal fetch direction!");
     if ( _par0 > 0 )
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 8be73ca..534093a 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -2983,17 +2983,17 @@ bool ORowSetClone::isNew( )
 
 void SAL_CALL ORowSetClone::execute(  ) throw(SQLException, RuntimeException, std::exception)
 {
-    throwFunctionNotSupportedException( "RowSetClone::XRowSet::execute", *this );
+    throwFunctionNotSupportedSQLException( "RowSetClone::XRowSet::execute", *this );
 }
 
 void SAL_CALL ORowSetClone::addRowSetListener( const Reference< XRowSetListener >& ) throw(RuntimeException, std::exception)
 {
-    throwFunctionNotSupportedException( "RowSetClone::XRowSet", *this );
+    throwFunctionNotSupportedRuntimeException( "RowSetClone::XRowSet", *this );
 }
 
 void SAL_CALL ORowSetClone::removeRowSetListener( const Reference< XRowSetListener >& ) throw(RuntimeException, std::exception)
 {
-    throwFunctionNotSupportedException( "RowSetClone::XRowSet", *this );
+    throwFunctionNotSupportedRuntimeException( "RowSetClone::XRowSet", *this );
 }
 
 } // dbaccess
diff --git a/dbaccess/source/core/api/TableDeco.cxx b/dbaccess/source/core/api/TableDeco.cxx
index 3872d39..0c21188 100644
--- a/dbaccess/source/core/api/TableDeco.cxx
+++ b/dbaccess/source/core/api/TableDeco.cxx
@@ -642,7 +642,7 @@ void SAL_CALL ODBTableDecorator::release() throw()
 
 void SAL_CALL ODBTableDecorator::setName( const OUString& /*aName*/ ) throw (::com::sun::star::uno::RuntimeException, std::exception)
 {
-    throwFunctionNotSupportedException( "XNamed::setName", *this );
+    throwFunctionNotSupportedRuntimeException( "XNamed::setName", *this );
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/connectivity/dbexception.hxx b/include/connectivity/dbexception.hxx
index 74b548c..1e7fade 100644
--- a/include/connectivity/dbexception.hxx
+++ b/include/connectivity/dbexception.hxx
@@ -226,13 +226,18 @@ OOO_DLLPUBLIC_DBTOOLS OUString getStandardSQLState( StandardSQLState _eState );
 
 /** throws an exception with SQL state IM001, saying that a certain function is not supported
 */
-OOO_DLLPUBLIC_DBTOOLS void throwFunctionNotSupportedException(
+OOO_DLLPUBLIC_DBTOOLS void throwFunctionNotSupportedSQLException(
         const OUString& _rFunctionName,
         const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
         const ::com::sun::star::uno::Any& _rNextException = ::com::sun::star::uno::Any()
     )
     throw ( ::com::sun::star::sdbc::SQLException );
 
+OOO_DLLPUBLIC_DBTOOLS void throwFunctionNotSupportedRuntimeException(
+        const OUString& _rFunctionName,
+        const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext
+    )
+    throw (css::uno::RuntimeException );
 
 /** throws a function sequence (HY010) exception
 */
commit b35f3dfb1afa78722a4cd8e69a625456a6dd01d6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:09:23 2014 +0100

    coverity#706240 Uncaught exception
    
    Change-Id: Ie31f5e1ff74ff8b9f35d7ce08e1f02a780375890

diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index 71af61e..de2b91a 100644
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@ -496,21 +496,27 @@ sal_Bool SfxLibraryContainer::isModified()
     for( sal_Int32 i = 0 ; i < nNameCount ; i++ )
     {
         OUString aName = pNames[ i ];
-        SfxLibrary* pImplLib = getImplLib( aName );
-        if( pImplLib->isModified() )
+        try
         {
-            if ( aName == "Standard" )
+            SfxLibrary* pImplLib = getImplLib( aName );
+            if( pImplLib->isModified() )
             {
-                // this is a workaround that has to be implemented because
-                // empty standard library should stay marked as modified
-                // but should not be treated as modified while it is empty
-                if ( pImplLib->hasElements() )
+                if ( aName == "Standard" )
+                {
+                    // this is a workaround that has to be implemented because
+                    // empty standard library should stay marked as modified
+                    // but should not be treated as modified while it is empty
+                    if ( pImplLib->hasElements() )
+                        return sal_True;
+                }
+                else
+                {
                     return sal_True;
+                }
             }
-            else
-            {
-                return sal_True;
-            }
+        }
+        catch(const css::container::NoSuchElementException&)
+        {
         }
     }
 
commit 7dda48d56f2d10bd6220fba19168ee1a70ecc05f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jul 1 15:04:10 2014 +0100

    Related: fdo#80633 cache optimal size
    
    Change-Id: Ic2c3aefebd3061d294f339c6d262a3c3e381fbe4

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 3cf10320..2d68c7a 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -1127,6 +1127,19 @@ protected:
     virtual sal_uInt16                  getDefaultAccessibleRole() const;
     virtual OUString                    getDefaultAccessibleName() const;
 
+    /*
+     * Advisory Sizing - what is a good size for this widget
+     *
+     * Retrieves the preferred size of a widget ignoring
+     * "width-request" and "height-request" properties.
+     *
+     * Implement this in sub-classes to tell layout
+     * the preferred widget size.
+     *
+     * Use get_preferred_size to retrieve this value
+     * mediated via height and width requests
+     */
+    virtual Size GetOptimalSize() const;
 private:
 
     SAL_DLLPRIVATE bool                 ImplIsAccessibleCandidate() const;
@@ -1137,6 +1150,20 @@ private:
     SAL_DLLPRIVATE void                 ImplRevokeAccessibleNativeFrame();
     ///@}
 
+    /*
+     * Retrieves the preferred size of a widget taking
+     * into account the "width-request" and "height-request" properties.
+     *
+     * Overrides the result of GetOptimalSize to honor the
+     * width-request and height-request properties.
+     *
+     * So the same as get_ungrouped_preferred_size except
+     * it ignores groups. A building block of get_preferred_size
+     * that access the size cache
+     *
+     * @see get_preferred_size
+     */
+    Size get_ungrouped_preferred_size() const;
 public:
     /// request XCanvas render interface for this window
     ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas >
@@ -1168,17 +1195,6 @@ public:
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetPrimarySelection();
 
     /*
-     * Advisory Sizing - what is a good size for this widget
-     *
-     * Retrieves the preferred size of a widget ignoring
-     * "width-request" and "height-request" properties.
-     *
-     * Implement this in sub-classes to tell layout
-     * the preferred widget size.
-     */
-    virtual Size GetOptimalSize() const;
-
-    /*
      * Widgets call this to inform their owner container that the widget wants
      * to renegotiate its size. Should be called when a widget has a new size
      * request. e.g. a FixedText Control gets a new label.
diff --git a/sfx2/source/sidebar/SidebarPanelBase.cxx b/sfx2/source/sidebar/SidebarPanelBase.cxx
index 5a0f3c4..77a34a0 100644
--- a/sfx2/source/sidebar/SidebarPanelBase.cxx
+++ b/sfx2/source/sidebar/SidebarPanelBase.cxx
@@ -218,7 +218,7 @@ ui::LayoutSize SAL_CALL SidebarPanelBase::getHeightForWidth (const sal_Int32 nWi
         if (isLayoutEnabled(mpControl))
         {
             // widget layout-based sidebar
-            Size aSize(mpControl->GetOptimalSize());
+            Size aSize(mpControl->get_preferred_size());
             return ui::LayoutSize(aSize.Height(), aSize.Height(), aSize.Height());
         }
         else if (pLayoutableWindow != NULL)
@@ -238,7 +238,7 @@ sal_Int32 SAL_CALL SidebarPanelBase::getMinimalWidth () throw(cssu::RuntimeExcep
     if (isLayoutEnabled(mpControl))
     {
         // widget layout-based sidebar
-        Size aSize(mpControl->GetOptimalSize());
+        Size aSize(mpControl->get_preferred_size());
         return aSize.Width();
     }
     return 0;
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index 96a663f..e264325 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -2167,7 +2167,7 @@ void VCLXWindow::setProperty( const OUString& PropertyName, const ::com::sun::st
             case WINDOW_SCROLLBARBOX:
                 return VCLXScrollBar::implGetMinimumSize( GetWindow() );
             default:
-                aSz = GetWindow()->GetOptimalSize();
+                aSz = GetWindow()->get_preferred_size();
         }
     }
 
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index ccecb3d..e97eabc 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -242,6 +242,8 @@ public:
     sal_Int32           mnBottomBorder;
     sal_Int32           mnWidthRequest;
     sal_Int32           mnHeightRequest;
+    sal_Int32           mnOptimalWidthCache;
+    sal_Int32           mnOptimalHeightCache;
     long                mnX;
     long                mnY;
     long                mnAbsScreenX;
diff --git a/vcl/source/window/tabdlg.cxx b/vcl/source/window/tabdlg.cxx
index 3c36eae..7ce6136 100644
--- a/vcl/source/window/tabdlg.cxx
+++ b/vcl/source/window/tabdlg.cxx
@@ -50,7 +50,7 @@ void TabDialog::ImplPosControls()
                 pTabControl = pChild;
             else if ( pTabControl )
             {
-                Size aOptimalSize(pChild->GetOptimalSize());
+                Size aOptimalSize(pChild->get_preferred_size());
                 long nTxtWidth = aOptimalSize.Width();
                 if ( nTxtWidth > aCtrlSize.Width() )
                     aCtrlSize.Width() = nTxtWidth;
@@ -80,7 +80,7 @@ void TabDialog::ImplPosControls()
         Point   aTabOffset( IMPL_DIALOG_OFFSET, IMPL_DIALOG_OFFSET+nOffY );
 
         if (isContainerWindow(*pTabControl))
-            pTabControl->SetSizePixel(pTabControl->GetOptimalSize());
+            pTabControl->SetSizePixel(pTabControl->get_preferred_size());
 
         Size    aTabSize = pTabControl->GetSizePixel();
 
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index af060f2..4699338 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -608,6 +608,8 @@ WindowImpl::WindowImpl( WindowType nType )
     mnBottomBorder                      = 0;                         // bottom border
     mnWidthRequest                      = -1;                        // width request
     mnHeightRequest                     = -1;                        // height request
+    mnOptimalWidthCache                 = -1;                        // optimal width cache
+    mnOptimalHeightCache                = -1;                        // optimal height cache
     mnX                                 = 0;                         // X-Position to Parent
     mnY                                 = 0;                         // Y-Position to Parent
     mnAbsScreenX                        = 0;                         // absolute X-position on screen, used for RTL window positioning
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 24ed6fa..52ccd62 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1428,6 +1428,8 @@ void Window::queue_resize()
     bool bSomeoneCares = queue_ungrouped_resize(this);
 
     WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
+    pWindowImpl->mnOptimalWidthCache = -1;
+    pWindowImpl->mnOptimalHeightCache = -1;
     if (pWindowImpl->m_xSizeGroup && pWindowImpl->m_xSizeGroup->get_mode() != VCL_SIZE_GROUP_NONE)
     {
         std::set<Window*> &rWindows = pWindowImpl->m_xSizeGroup->get_widgets();
@@ -1689,26 +1691,31 @@ void Window::set_width_request(sal_Int32 nWidthRequest)
     }
 }
 
-namespace
+Size Window::get_ungrouped_preferred_size() const
 {
-    Size get_ungrouped_preferred_size(const Window &rWindow)
+    Size aRet(get_width_request(), get_height_request());
+    if (aRet.Width() == -1 || aRet.Height() == -1)
     {
-        Size aRet(rWindow.get_width_request(), rWindow.get_height_request());
-        if (aRet.Width() == -1 || aRet.Height() == -1)
+        //cache gets blown away by queue_resize
+        WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
+        if (pWindowImpl->mnOptimalWidthCache == -1 || pWindowImpl->mnOptimalHeightCache == -1)
         {
-            Size aOptimal = rWindow.GetOptimalSize();
-            if (aRet.Width() == -1)
-                aRet.Width() = aOptimal.Width();
-            if (aRet.Height() == -1)
-                aRet.Height() = aOptimal.Height();
+            Size aOptimal(GetOptimalSize());
+            pWindowImpl->mnOptimalWidthCache = aOptimal.Width();
+            pWindowImpl->mnOptimalHeightCache = aOptimal.Height();
         }
-        return aRet;
+
+        if (aRet.Width() == -1)
+            aRet.Width() = pWindowImpl->mnOptimalWidthCache;
+        if (aRet.Height() == -1)
+            aRet.Height() = pWindowImpl->mnOptimalHeightCache;
     }
+    return aRet;
 }
 
 Size Window::get_preferred_size() const
 {
-    Size aRet(get_ungrouped_preferred_size(*this));
+    Size aRet(get_ungrouped_preferred_size());
 
     WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
     if (pWindowImpl->m_xSizeGroup)
@@ -1726,7 +1733,7 @@ Size Window::get_preferred_size() const
                     continue;
                 if (bIgnoreInHidden && !pOther->IsVisible())
                     continue;
-                Size aOtherSize = get_ungrouped_preferred_size(*pOther);
+                Size aOtherSize = pOther->get_ungrouped_preferred_size();
                 if (eMode == VCL_SIZE_GROUP_BOTH || eMode == VCL_SIZE_GROUP_HORIZONTAL)
                     aRet.Width() = std::max(aRet.Width(), aOtherSize.Width());
                 if (eMode == VCL_SIZE_GROUP_BOTH || eMode == VCL_SIZE_GROUP_VERTICAL)


More information about the Libreoffice-commits mailing list