diff options
-rw-r--r-- | dbaccess/source/core/dataaccess/ModelImpl.cxx | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx index 936ba5c4dbbb..4788df6aa7c4 100644 --- a/dbaccess/source/core/dataaccess/ModelImpl.cxx +++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx @@ -824,21 +824,27 @@ Reference< XStorage > ODatabaseModelImpl::getOrCreateRootStorage() aStorageCreationArgs[1] <<= ElementModes::READWRITE; Reference< XStorage > xDocumentStorage; - try - { - xDocumentStorage.set( xStorageFactory->createInstanceWithArguments( aStorageCreationArgs ), UNO_QUERY_THROW ); - } - catch( const Exception& ) + OUString sURL; + aSource >>= sURL; + // Don't try to load a meta-URL as-is. + if (!sURL.startsWithIgnoreAsciiCase("vnd.sun.star.pkg:")) { - m_bDocumentReadOnly = true; - aStorageCreationArgs[1] <<= ElementModes::READ; try { xDocumentStorage.set( xStorageFactory->createInstanceWithArguments( aStorageCreationArgs ), UNO_QUERY_THROW ); } catch( const Exception& ) { - DBG_UNHANDLED_EXCEPTION(); + m_bDocumentReadOnly = true; + aStorageCreationArgs[1] <<= ElementModes::READ; + try + { + xDocumentStorage.set( xStorageFactory->createInstanceWithArguments( aStorageCreationArgs ), UNO_QUERY_THROW ); + } + catch( const Exception& ) + { + DBG_UNHANDLED_EXCEPTION(); + } } } |