summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-07-05 00:07:43 +0200
committerMichael Meeks <michael.meeks@suse.com>2013-07-08 08:56:25 +0000
commit633736f40f7e6a58d691875b2e52d9a5e8140113 (patch)
treebbcbfec13a9bd3b74a4a77dd5161b4df3350c392
parent4e1ea9d8f7bf86f26e1dd91283b98e87a0bd3ab5 (diff)
fdo#66420: fix user dictionaries on Windows
28300209604ee1bb8e5050322b29e95a07f679d8 added yet another silly temp file wrapper class, and introduced 2 bugs: the file descriptor is not closed before renaming it which fails with ERROR_SHARING_VIOLATION on Win32, and (as a consequence of that) another attempt to save the dictionary during shutdown fails because SimpleFileAccess cannot be created and this is not checked. Change-Id: I7bd3f5d349ed550440a93fe71e3791c9919de3af (cherry picked from commit d68de5195605bd9236851e0714dd9b03b0f5f3be) Reviewed-on: https://gerrit.libreoffice.org/4729 Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org> Tested-by: Fridrich Strba <fridrich@documentfoundation.org> (cherry picked from commit 4d1774b3631e4ac93b544c42bd33cb4058a16392) Reviewed-on: https://gerrit.libreoffice.org/4738 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
-rw-r--r--linguistic/source/dicimp.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx
index 083f4c5cc6bb..5af73a82de33 100644
--- a/linguistic/source/dicimp.cxx
+++ b/linguistic/source/dicimp.cxx
@@ -393,7 +393,10 @@ struct TmpDictionary
{
try
{
- mxAccess->kill(maTmpURL);
+ if (mxAccess.is())
+ {
+ mxAccess->kill(maTmpURL);
+ }
}
catch (const uno::Exception &) { }
}
@@ -492,6 +495,8 @@ sal_uLong DictionaryNeo::saveEntries(const OUString &rURL)
break;
}
+ pStream.reset(); // fdo#66420 close streams so Win32 can move the file
+ xStream.clear();
nErr = aTmpDictionary.renameTmpToURL();
//If we are migrating from an older version, then on first successful