summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/dataaccess/documentcontainer.cxx21
1 files changed, 19 insertions, 2 deletions
diff --git a/dbaccess/source/core/dataaccess/documentcontainer.cxx b/dbaccess/source/core/dataaccess/documentcontainer.cxx
index 3593e08b9bde..fc5efb6fb586 100644
--- a/dbaccess/source/core/dataaccess/documentcontainer.cxx
+++ b/dbaccess/source/core/dataaccess/documentcontainer.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: documentcontainer.cxx,v $
- * $Revision: 1.29 $
+ * $Revision: 1.30 $
*
* This file is part of OpenOffice.org.
*
@@ -73,6 +73,7 @@
#ifndef _DBA_COREDATAACCESS_DATASOURCE_HXX_
#include "datasource.hxx"
#endif
+#include <comphelper/classids.hxx>
#ifndef _COMPHELPER_MIMECONFIGHELPER_HXX_
#include <comphelper/mimeconfighelper.hxx>
#endif
@@ -83,6 +84,9 @@
#include <connectivity/sqlerror.hxx>
#endif
+#include <vcl/svapp.hxx>
+#include <vos/mutex.hxx>
+
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::embed;
@@ -234,7 +238,18 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
}
else if ( aValue.Name.equalsAscii("ClassID") )
{
- aValue.Value >>= aClassID;
+ if (! ( aValue.Value >>= aClassID ) )
+ {
+ // Extended for usage also with a string
+ ::rtl::OUString suValue;
+ aValue.Value >>= suValue;
+ aClassID = ::comphelper::MimeConfigurationHelper::GetSequenceClassIDRepresentation( suValue );
+
+ }
+ rtl::OUString suClassID = ::comphelper::MimeConfigurationHelper::GetStringClassIDRepresentation(aClassID);
+ volatile int dummy = 0;
+ (void)dummy;
+ (void)suClassID;
}
else if ( aValue.Name.equalsAscii(PROPERTY_AS_TEMPLATE) )
{
@@ -521,6 +536,8 @@ Reference< XComponent > SAL_CALL ODocumentContainer::loadComponentFromURL( const
, sal_Int32 /*SearchFlags*/
, const Sequence< PropertyValue >& Arguments ) throw (IOException, IllegalArgumentException, RuntimeException)
{
+ vos::OGuard aSolarGuard(Application::GetSolarMutex());
+
MutexGuard aGuard(m_aMutex);
Reference< XComponent > xComp;
try