[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - package/source writerfilter/source
Michael Stahl
mstahl at redhat.com
Fri Aug 16 07:24:54 PDT 2013
package/source/xstor/xstorage.cxx | 6 +++++-
writerfilter/source/ooxml/OOXMLDocumentImpl.cxx | 13 +++++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
New commits:
commit 5cc5a03d799434b51f67256a46d52b823870be94
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/5450
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 bfd2302..a2e0350 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -2194,7 +2194,11 @@ SotElement_Impl* OStorage::OpenStreamElement_Impl( const ::rtl::OUString& aStrea
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..58a1006 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 " << (unsigned)nType << " : " << e.Message);
+ return;
+ }
OOXMLStream::Pointer_t savedStream = mpStream;
mpStream = pStream;
More information about the Libreoffice-commits
mailing list