summaryrefslogtreecommitdiff
path: root/oox/source
diff options
context:
space:
mode:
authorMuthu Subramanian <sumuthu@suse.com>2012-09-11 12:44:44 +0530
committerMuthu Subramanian <sumuthu@suse.com>2012-09-11 12:44:44 +0530
commit0f0bd022b6f8ae89655a6e47964842086a9beb80 (patch)
treeac8ae97eeaea96accaaf5cd61a12c3cdce98b960 /oox/source
parenta7805f85ad7a11c187c3bdc1b85be624ccbff864 (diff)
fdo#54609: Exception while importing xlsx.
* Handle any exception thrown during document properties import. This is not so critical so as to stop the import. We anyways check for hasElements(). * Also lclGetRelatedStreams might throw IllegalArgumentException
Diffstat (limited to 'oox/source')
-rw-r--r--oox/source/docprop/ooxmldocpropimport.cxx21
1 files changed, 14 insertions, 7 deletions
diff --git a/oox/source/docprop/ooxmldocpropimport.cxx b/oox/source/docprop/ooxmldocpropimport.cxx
index 9339c5362777..9e513a2e7175 100644
--- a/oox/source/docprop/ooxmldocpropimport.cxx
+++ b/oox/source/docprop/ooxmldocpropimport.cxx
@@ -68,7 +68,7 @@ Reference< XInterface > SAL_CALL DocumentPropertiesImport_createInstance( const
namespace {
-Sequence< InputSource > lclGetRelatedStreams( const Reference< XStorage >& rxStorage, const OUString& rStreamType ) throw (RuntimeException)
+Sequence< InputSource > lclGetRelatedStreams( const Reference< XStorage >& rxStorage, const OUString& rStreamType ) throw (RuntimeException, IllegalArgumentException)
{
Reference< XRelationshipAccess > xRelation( rxStorage, UNO_QUERY_THROW );
Reference< XHierarchicalStorageAccess > xHierarchy( rxStorage, UNO_QUERY_THROW );
@@ -138,19 +138,26 @@ void SAL_CALL DocumentPropertiesImport::importProperties(
const Reference< XStorage >& rxSource, const Reference< XDocumentProperties >& rxDocumentProperties )
throw (RuntimeException, IllegalArgumentException, SAXException, Exception)
{
+ Sequence< InputSource > aCoreStreams;
+ Sequence< InputSource > aExtStreams;
+ Sequence< InputSource > aCustomStreams;
+
if( !mxContext.is() )
throw RuntimeException();
if( !rxSource.is() || !rxDocumentProperties.is() )
throw IllegalArgumentException();
- Sequence< InputSource > aCoreStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "metadata/core-properties" ) );
- // MS Office seems to have a bug, so we have to do similar handling
- if( !aCoreStreams.hasElements() )
- aCoreStreams = lclGetRelatedStreams( rxSource, CREATE_PACKAGE_RELATION_TYPE( "metadata/core-properties" ) );
+ try {
+ aCoreStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "metadata/core-properties" ) );
+ // MS Office seems to have a bug, so we have to do similar handling
+ if( !aCoreStreams.hasElements() )
+ aCoreStreams = lclGetRelatedStreams( rxSource, CREATE_PACKAGE_RELATION_TYPE( "metadata/core-properties" ) );
- Sequence< InputSource > aExtStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "extended-properties" ) );
- Sequence< InputSource > aCustomStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "custom-properties" ) );
+ aExtStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "extended-properties" ) );
+ aCustomStreams = lclGetRelatedStreams( rxSource, CREATE_OFFICEDOC_RELATION_TYPE( "custom-properties" ) );
+ }
+ catch(Exception) { }
if( aCoreStreams.hasElements() || aExtStreams.hasElements() || aCustomStreams.hasElements() )
{