summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-12-02 23:55:43 +0100
committerLionel Elie Mamane <lionel@mamane.lu>2013-12-02 23:58:40 +0100
commit5bfdb6cd5f80f87c5bc6b0bccdad5aad00a45ba3 (patch)
tree23db85ddc736707b1d5cdc2838dc07f7792bdb87
parent938f0e7fe4216d135815b98fdb918f97e747c6bd (diff)
fdo#72163 belts and suspenders
1) Do not dispose m_xComposer, might still be used by our m_pCache 2) Do not create a new m_xComposer if the previous one will do, so that we do not gratiously use a different one than our m_pCache. Change-Id: I6540c035c9159017c694b36e676721ec3e42db51
-rw-r--r--dbaccess/source/core/api/RowSet.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 69663d07195e..f2c43457c0dd 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -2250,12 +2250,14 @@ sal_Bool ORowSet::impl_initComposer_throw( OUString& _out_rCommandToExecute )
if ( !bUseEscapeProcessing )
return bUseEscapeProcessing;
+ if (m_bCommandFacetsDirty)
+ m_xComposer = NULL;
+
Reference< XMultiServiceFactory > xFactory( m_xActiveConnection, UNO_QUERY );
- if ( xFactory.is() )
+ if ( !m_xComposer.is() && xFactory.is() )
{
try
{
- ::comphelper::disposeComponent( m_xComposer );
m_xComposer.set( xFactory->createInstance( SERVICE_NAME_SINGLESELECTQUERYCOMPOSER ), UNO_QUERY_THROW );
}
catch (const Exception& ) { m_xComposer = NULL; }