diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-05-16 09:32:51 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-05-16 09:36:38 +0200 |
commit | e3633f60b349022994e291aa3d1a0c90c3403b2e (patch) | |
tree | a0ac7584c661f0e61fe3830ee519a6cc8c367b5f | |
parent | b772e2f064d150edb0ce75d252de6658a04849a8 (diff) |
fdo#46074 fdo#49948 Ignore corrupted items in Recent Documents
...following up on 4ccb4bda483eb548eb6efb5e2f1952f094522320 "fdo#46074 Ignore
corrupted items in Recent Documents" with another problematic scenario found
with fdo#49948.
Change-Id: I3e7c803813f09c1f031defc2c18cfab6732b1621
-rw-r--r-- | unotools/source/config/historyoptions.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/unotools/source/config/historyoptions.cxx b/unotools/source/config/historyoptions.cxx index e681395c0a8d..93d5854f0676 100644 --- a/unotools/source/config/historyoptions.cxx +++ b/unotools/source/config/historyoptions.cxx @@ -533,7 +533,23 @@ void SvtHistoryOptions_Impl::AppendItem( EHistoryType eHistory , ::rtl::OUString sRemove; xOrderList->getByName(::rtl::OUString::valueOf(nLength-1)) >>= xSet; xSet->getPropertyValue(sHistoryItemRef) >>= sRemove; - xItemList->removeByName(sRemove); + try + { + xItemList->removeByName(sRemove); + } + catch (css::container::NoSuchElementException &) + { + // <https://bugs.freedesktop.org/show_bug.cgi?id=46074> + // "FILEOPEN: No Recent Documents..." discusses a problem + // with corrupted /org.openoffice.Office/Histories/Histories + // configuration items; to work around that problem, simply + // ignore such corrupted individual items here, so that at + // least newly added items are successfully added: + if (!sRemove.isEmpty()) + { + throw; + } + } } if ( nLength != nMaxSize ) { |