summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-04-11 13:29:36 +0200
committerJan Holesovsky <kendy@suse.cz>2013-04-11 18:27:37 +0200
commit763011690b18cdf47cb23125c98a5bfa5d17b2d6 (patch)
treefc4f14b9f9e86a171650a091d97bfed93d3a2c32 /editeng
parentc226e93159730cc53947d271c587d3720d966546 (diff)
i#79611: SvxFieldData::Create() is not supposed to throw.
Change-Id: Ied4e5cc9211b2a541006432d0b4d257f014249f4
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/items/flditem.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx
index 2b3d090b796e..70fe69274e5c 100644
--- a/editeng/source/items/flditem.cxx
+++ b/editeng/source/items/flditem.cxx
@@ -43,7 +43,18 @@ SvxFieldData* SvxFieldData::Create(const uno::Reference<text::XTextContent>& xTe
if (!xPropSet.is())
return NULL;
- uno::Any aAny = xPropSet->getPropertyValue(UNO_TC_PROP_TEXTFIELD_TYPE);
+ // we do not support these fields from Writer, so make sure we do not throw
+ // here - see fdo#63436 how to possibly extend Writer to make use of this
+ uno::Any aAny;
+ try {
+ aAny = xPropSet->getPropertyValue(UNO_TC_PROP_TEXTFIELD_TYPE);
+ if ( !aAny.has<sal_Int32>() )
+ return NULL;
+ } catch ( const beans::UnknownPropertyException& e )
+ {
+ return NULL;
+ }
+
sal_Int32 nFieldType = aAny.get<sal_Int32>();
switch (nFieldType)