ucb/source/ucp/webdav-neon/webdavcontent.cxx | 6 ++++++ ucb/source/ucp/webdav-neon/webdavcontent.hxx | 1 + ucb/source/ucp/webdav/webdavcontent.cxx | 6 ++++++ ucb/source/ucp/webdav/webdavcontent.hxx | 1 + 4 files changed, 14 insertions(+)
New commits: commit de5de7e1116fad18c8e3eef110eb32f2c75550ca Author: Matúš Kukan <[email protected]> Date: Tue Jun 24 16:22:51 2014 +0200 fdo#72157: webdav: Release WebDAV file lock on document close. Only neon version is relevant in this branch (libreoffice-4-2). (cherry picked from commit 956d088db5850e9a096bb9abd8b3e446e096f613) Conflicts: ucb/source/ucp/webdav/SerfSession.cxx Change-Id: I3c74ba57cde19f4417d0229c1c809756e3c5f9f8 Reviewed-on: https://gerrit.libreoffice.org/9881 Tested-by: Markus Mohrhard <[email protected]> Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/ucb/source/ucp/webdav-neon/webdavcontent.cxx b/ucb/source/ucp/webdav-neon/webdavcontent.cxx index bff41ad..ce2fcbb 100644 --- a/ucb/source/ucp/webdav-neon/webdavcontent.cxx +++ b/ucb/source/ucp/webdav-neon/webdavcontent.cxx @@ -112,6 +112,7 @@ Content::Content( m_eResourceType( UNKNOWN ), m_pProvider( pProvider ), m_bTransient( false ), + m_bLocked( false ), m_bCollection( false ), m_bDidGetOrHead( false ) { @@ -144,6 +145,7 @@ Content::Content( m_eResourceType( UNKNOWN ), m_pProvider( pProvider ), m_bTransient( true ), + m_bLocked( false ), m_bCollection( isCollection ), m_bDidGetOrHead( false ) { @@ -164,6 +166,8 @@ Content::Content( // virtual Content::~Content() { + if (m_bLocked) + unlock(uno::Reference< ucb::XCommandEnvironment >()); } //========================================================================= @@ -2818,6 +2822,7 @@ void Content::lock( uno::Sequence< OUString >() ); xResAccess->LOCK( aLock, Environment ); + m_bLocked = true; { osl::Guard< osl::Mutex > aGuard( m_aMutex ); @@ -2847,6 +2852,7 @@ void Content::unlock( } xResAccess->UNLOCK( Environment ); + m_bLocked = false; { osl::Guard< osl::Mutex > aGuard( m_aMutex ); diff --git a/ucb/source/ucp/webdav-neon/webdavcontent.hxx b/ucb/source/ucp/webdav-neon/webdavcontent.hxx index f2d378b..ee46d6d 100644 --- a/ucb/source/ucp/webdav-neon/webdavcontent.hxx +++ b/ucb/source/ucp/webdav-neon/webdavcontent.hxx @@ -91,6 +91,7 @@ class Content : public ::ucbhelper::ContentImplHelper, ResourceType m_eResourceType; ContentProvider* m_pProvider; // No need for a ref, base class holds object bool m_bTransient; + bool m_bLocked; bool m_bCollection; bool m_bDidGetOrHead; std::vector< OUString > m_aFailedPropNames; diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx index d98c39b..941bef6 100644 --- a/ucb/source/ucp/webdav/webdavcontent.cxx +++ b/ucb/source/ucp/webdav/webdavcontent.cxx @@ -208,6 +208,7 @@ Content::Content( m_eResourceType( UNKNOWN ), m_pProvider( pProvider ), m_bTransient( false ), + m_bLocked( false ), m_bCollection( false ), m_bDidGetOrHead( false ) { @@ -240,6 +241,7 @@ Content::Content( m_eResourceType( UNKNOWN ), m_pProvider( pProvider ), m_bTransient( true ), + m_bLocked( false ), m_bCollection( isCollection ), m_bDidGetOrHead( false ) { @@ -260,6 +262,8 @@ Content::Content( // virtual Content::~Content() { + if (m_bLocked) + unlock(uno::Reference< ucb::XCommandEnvironment >()); } //========================================================================= @@ -2983,6 +2987,7 @@ void Content::lock( uno::Sequence< OUString >() ); xResAccess->LOCK( aLock, Environment ); + m_bLocked = true; { osl::Guard< osl::Mutex > aGuard( m_aMutex ); @@ -3010,6 +3015,7 @@ void Content::unlock( } xResAccess->UNLOCK( Environment ); + m_bLocked = false; { osl::Guard< osl::Mutex > aGuard( m_aMutex ); diff --git a/ucb/source/ucp/webdav/webdavcontent.hxx b/ucb/source/ucp/webdav/webdavcontent.hxx index 10c3022..a301983 100644 --- a/ucb/source/ucp/webdav/webdavcontent.hxx +++ b/ucb/source/ucp/webdav/webdavcontent.hxx @@ -82,6 +82,7 @@ class Content : public ::ucbhelper::ContentImplHelper, ResourceType m_eResourceType; ContentProvider* m_pProvider; // No need for a ref, base class holds object bool m_bTransient; + bool m_bLocked; bool m_bCollection; bool m_bDidGetOrHead; std::vector< OUString > m_aFailedPropNames;
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
