summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2020-04-07 09:05:05 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2020-04-08 23:52:20 +0200
commit984a240975b87eff10ccda394de9e7ea0078ed30 (patch)
treece2ecbba090e39ef99450770a142517ca644afcf /dbaccess
parent8a7d8eeeb0ea75881913b7c672cb4bc5d8893114 (diff)
Related tdf#97694 Fix macro preservation on Windows
Change-Id: Ief183c75e0c3ce6c42868b7c60c5f66f9684d743 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91795 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 792c730f3cda4f5c312921a62ecae3d322ad9b72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91920 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx
index cc571a0a6457..f76104e93aa9 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.cxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.cxx
@@ -1093,18 +1093,21 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
}
// store to current storage
- Reference< XStorage > xCurrentStorage( m_pImpl->getOrCreateRootStorage(), UNO_QUERY_THROW );
+ Reference< XStorage > xCurrentStorage( m_pImpl->getOrCreateRootStorage(), UNO_SET_THROW );
+ OUString aODFVersion(comphelper::OStorageHelper::GetODFVersionFromStorage(xCurrentStorage));
Sequence< PropertyValue > aMediaDescriptor( lcl_appendFileNameToDescriptor( _rArguments, _rURL ) );
impl_storeToStorage_throw( xCurrentStorage, aMediaDescriptor, _rGuard );
// Preserve script signature if the script has not changed
if (bTryToPreserveScriptSignature)
{
+ // Need to close this storage, otherwise we can't open it for signing below
+ // (Windows needs exclusive file access)
+ uno::Reference < lang::XComponent > xComp = xCurrentStorage;
+ xComp->dispose();
uno::Reference<security::XDocumentDigitalSignatures> xDDSigns;
try
{
- OUString aODFVersion(
- comphelper::OStorageHelper::GetODFVersionFromStorage(xCurrentStorage));
xDDSigns = security::DocumentDigitalSignatures::createWithVersion(
comphelper::getProcessComponentContext(), aODFVersion);