[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - package/source writerfilter/source
Michael Stahl
mstahl at redhat.com
Fri Aug 16 06:41:10 PDT 2013
package/source/xstor/xstorage.cxx | 6 +++++-
writerfilter/source/ooxml/OOXMLDocumentImpl.cxx | 13 +++++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
New commits:
commit b697e302c1eb31afdcc3bbc916bd929ec96a6c70
Author: Michael Stahl <mstahl at redhat.com>
Date: Fri Aug 16 12:35:26 2013 +0200
fdo#68084: OOXML import: handle exceptions if stream is missing
The bugdoc does not have a styles.xml but a stylesWithEffects.xml,
whatever that may mean. (the app.xml contains "Microsoft Macintosh Word")
Change-Id: If3d11c5d166dcaf3d94129339559787c20e6db46
(cherry picked from commit 6e3ac01f850228afb5c6cb1a33b101693aea8712)
Reviewed-on: https://gerrit.libreoffice.org/5449
Reviewed-by: Petr Mladek <pmladek at suse.cz>
Tested-by: Petr Mladek <pmladek at suse.cz>
diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx
index 073f1d1..d95e418 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -2192,7 +2192,11 @@ SotElement_Impl* OStorage::OpenStreamElement_Impl( const OUString& aStreamName,
if ( !( m_pImpl->m_nStorageMode & embed::ElementModes::WRITE )
|| (( nOpenMode & embed::ElementModes::WRITE ) != embed::ElementModes::WRITE )
|| ( nOpenMode & embed::ElementModes::NOCREATE ) == embed::ElementModes::NOCREATE )
- throw io::IOException( OSL_LOG_PREFIX, uno::Reference< uno::XInterface >() ); // TODO: access_denied
+ {
+ throw io::IOException("Element does not exist and cannot be "
+ "created: \"" + aStreamName + "\"",
+ uno::Reference< uno::XInterface >()); // TODO: access_denied
+ }
// create a new StreamElement and insert it into the list
pElement = m_pImpl->InsertStream( aStreamName, bEncr );
diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
index 29c64ad..083d6ec 100644
--- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
@@ -54,8 +54,17 @@ OOXMLDocumentImpl::~OOXMLDocumentImpl()
void OOXMLDocumentImpl::resolveFastSubStream(Stream & rStreamHandler,
OOXMLStream::StreamType_t nType)
{
- OOXMLStream::Pointer_t pStream
- (OOXMLDocumentFactory::createStream(mpStream, nType));
+ OOXMLStream::Pointer_t pStream;
+ try
+ {
+ pStream = OOXMLDocumentFactory::createStream(mpStream, nType);
+ }
+ catch (uno::Exception const& e)
+ {
+ SAL_INFO("writerfilter", "resolveFastSubStream: exception while "
+ "resolving stream " << nType << " : " << e.Message);
+ return;
+ }
OOXMLStream::Pointer_t savedStream = mpStream;
mpStream = pStream;
More information about the Libreoffice-commits
mailing list