From 9cde511be7599b7ceea08bf898fae5d400c83b92 Mon Sep 17 00:00:00 2001
Message-Id: <9cde511be7599b7ceea08bf898fae5d400c83b92.1336468489.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Tue, 8 May 2012 11:06:47 +0200
Subject: [PATCH] resolved rhbz#819118 catch exception from VBA lib container
If in an imported Excel document with VBA a sheet to be copied does not have
a document object in the VBAProject container (whyever that may be the case)
the getByName() rightly throws a NoSuchElement exception. Catch that.
Backported to 3-4
---
sc/source/ui/docshell/docsh5.cxx | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index a4b2527..3992aa8 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -940,17 +940,23 @@ sal_Bool ScDocShell::MoveTable( SCTAB nSrcTab, SCTAB nDestTab, sal_Bool bCopy, s
nTabToUse = aDocument.GetMaxTableNumber() - 1;
String sCodeName;
String sSource;
- Reference< XNameContainer > xLib;
- if( xLibContainer.is() )
+ try
{
- com::sun::star::uno::Any aLibAny = xLibContainer->getByName( aLibName );
- aLibAny >>= xLib;
+ Reference< XNameContainer > xLib;
+ if( xLibContainer.is() )
+ {
+ com::sun::star::uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ aLibAny >>= xLib;
+ }
+ if( xLib.is() )
+ {
+ rtl::OUString sRTLSource;
+ xLib->getByName( sSrcCodeName ) >>= sRTLSource;
+ sSource = sRTLSource;
+ }
}
- if( xLib.is() )
+ catch ( const com::sun::star::uno::Exception& )
{
- rtl::OUString sRTLSource;
- xLib->getByName( sSrcCodeName ) >>= sRTLSource;
- sSource = sRTLSource;
}
VBA_InsertModule( aDocument, nTabToUse, sCodeName, sSource );
}
--
1.7.7.6