diff options
author | Giuseppe Castagno <giuseppe.castagno@acca-esse.eu> | 2016-01-11 11:11:19 +0100 |
---|---|---|
committer | Giuseppe Castagno <giuseppe.castagno@acca-esse.eu> | 2016-07-29 16:39:04 +0000 |
commit | e0eb85785b68867f1476553723dbfc6dc407106b (patch) | |
tree | 997eb3f0f0ccc4bbb342eff27efdc46a275c71a0 /ucb | |
parent | dfb714183f31d8a235797ef1ad3c517966ed4985 (diff) |
tdf#101094 (14) OPTIONS: Options cache removal: PUT
Change-Id: I251bbb101b4be851deaab66cbe4e10ff1fa3376e
Reviewed-on: https://gerrit.libreoffice.org/27691
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Giuseppe Castagno <giuseppe.castagno@acca-esse.eu>
Diffstat (limited to 'ucb')
-rw-r--r-- | ucb/source/ucp/webdav-neon/webdavcontent.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ucb/source/ucp/webdav-neon/webdavcontent.cxx b/ucb/source/ucp/webdav-neon/webdavcontent.cxx index 81c015c630db..67d21ab4aca2 100644 --- a/ucb/source/ucp/webdav-neon/webdavcontent.cxx +++ b/ucb/source/ucp/webdav-neon/webdavcontent.cxx @@ -2422,6 +2422,8 @@ void Content::insert( aURL += aEscapedTitle; + // save the URL to clean cache + OUString aTargetUrl = aURL; try { xResAccess->setURL( aURL ); @@ -2431,6 +2433,9 @@ void Content::insert( else { xResAccess->PUT( xInputStream, Environment ); + // remove options from cache, PUT may change it + // it will be refreshed when needed + aStaticDAVOptionsCache.removeDAVOptions( aTargetUrl ); } // no error , set the resourcetype to unknown type // the resource may have transitioned from NOT FOUND or UNKNOWN to something else @@ -2441,6 +2446,7 @@ void Content::insert( } catch ( DAVException const & except ) { + aStaticDAVOptionsCache.removeDAVOptions( aTargetUrl ); if ( bCollection ) { if ( except.getStatus() == SC_METHOD_NOT_ALLOWED ) @@ -2528,12 +2534,18 @@ void Content::insert( // Unreachable } + // save the URL since it may change due to redirection + OUString aTargetUrl = xResAccess->getURL(); try { xResAccess->PUT( xInputStream, Environment ); + // remove options from cache, PUT may change it + // it will be refreshed when needed + aStaticDAVOptionsCache.removeDAVOptions( aTargetUrl ); } catch ( DAVException const & e ) { + aStaticDAVOptionsCache.removeDAVOptions( aTargetUrl ); cancelCommandExecution( e, Environment, true ); // Unreachable } |