summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/source/xstor/xstorage.cxx21
1 files changed, 14 insertions, 7 deletions
diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx
index 0b1193f45327..773fd79a84d5 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -5986,15 +5986,22 @@ uno::Reference< embed::XExtendedStorageStream > SAL_CALL OStorage::openStreamEle
uno::Reference< embed::XExtendedStorageStream > xResult;
if ( aListPath.size() == 1 )
{
- // that must be a direct request for a stream
- // the transacted version of the stream should be opened
+ try
+ {
+ // that must be a direct request for a stream
+ // the transacted version of the stream should be opened
- SotElement_Impl *pElement = OpenStreamElement_Impl( aStreamPath, nOpenMode, false );
- assert(pElement && pElement->m_pStream && "In case element can not be created an exception must be thrown!");
+ SotElement_Impl *pElement = OpenStreamElement_Impl( aStreamPath, nOpenMode, false );
+ assert(pElement && pElement->m_pStream && "In case element can not be created an exception must be thrown!");
- xResult = uno::Reference< embed::XExtendedStorageStream >(
- pElement->m_pStream->GetStream( nOpenMode, true ),
- uno::UNO_QUERY_THROW );
+ xResult = uno::Reference< embed::XExtendedStorageStream >(
+ pElement->m_pStream->GetStream( nOpenMode, true ),
+ uno::UNO_QUERY_THROW );
+ }
+ catch ( const container::NoSuchElementException & )
+ {
+ throw io::IOException( THROW_WHERE ); // file not found
+ }
}
else
{