[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0-29' - sfx2/source

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Fri May 3 13:32:15 UTC 2019


 sfx2/source/doc/objstor.cxx |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

New commits:
commit 4eaff1246710443a0a6870f547ba8fdc1c71341a
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Sun Apr 28 15:21:39 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri May 3 15:31:13 2019 +0200

    WebDav: Don't unlock the file during saving of a document
    
    Otherwise it can happen that the file is locked by someone
    else during the saving method is running.
    I just extended the scope of the existing DisableUnlockWebDAV()
    calls a bit. In case of webdav it does not cause an issue to
    avoid unlocking the file before locking it again with an other
    SfxMedium.
    
    Change-Id: I6ac4e3326c63c9e184a7710ce8994cac1ed79449
    Reviewed-on: https://gerrit.libreoffice.org/71484
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit fdab153636ad7e3ce4b09836a63d2fa11b42e728)
    Reviewed-on: https://gerrit.libreoffice.org/71512
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index c776ff944957..1b04019c95c3 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -1200,6 +1200,10 @@ bool SfxObjectShell::SaveTo_Impl
       && !rMedium.GetName().equalsIgnoreAsciiCase("private:stream")
       && ::utl::UCBContentHelper::EqualURLs( pMedium->GetName(), rMedium.GetName() ) )
     {
+        // Do not unlock the file during saving.
+        // need to modify this for WebDAV if this method is called outside of
+        // the process of saving a file
+        pMedium->DisableUnlockWebDAV();
         bStoreToSameLocation = true;
 
         if ( pMedium->DocNeedsFileDateCheck() )
@@ -1298,6 +1302,7 @@ bool SfxObjectShell::SaveTo_Impl
                 }
             }
         }
+        pMedium->DisableUnlockWebDAV(false);
     }
     else
     {
@@ -1718,10 +1723,6 @@ bool SfxObjectShell::SaveTo_Impl
     return bOk;
 }
 
-
-// This method contains a call to disable the UNLOCK of a WebDAV resource, that work while saving a file.
-// If the method is called from another process (e.g. not when saving a file),
-// that disabling needs tweaking
 bool SfxObjectShell::DisconnectStorage_Impl( SfxMedium& rSrcMedium, SfxMedium& rTargetMedium )
 {
     // this method disconnects the storage from source medium, and attaches it to the backup created by the target medium
@@ -1742,12 +1743,7 @@ bool SfxObjectShell::DisconnectStorage_Impl( SfxMedium& rSrcMedium, SfxMedium& r
                 rTargetMedium.ResetError();
                 xOptStorage->writeAndAttachToStream( uno::Reference< io::XStream >() );
                 rSrcMedium.CanDisposeStorage_Impl( false );
-                // need to modify this for WebDAV if this method is called outside
-                // the process of saving a file
-                rSrcMedium.DisableUnlockWebDAV();
                 rSrcMedium.Close();
-                // see comment on the previous third row
-                rSrcMedium.DisableUnlockWebDAV( false );
 
                 // now try to create the backup
                 rTargetMedium.GetBackup_Impl();


More information about the Libreoffice-commits mailing list