Tag: cws_dev300_dba31c User: fs Date: 2008-09-30 07:31:44+0000 Modified: dba/dbaccess/source/filter/xml/xmlExport.cxx
Log: #i94433# more tolerance against some dead objects ... File Changes: Directory: /dba/dbaccess/source/filter/xml/ =========================================== File [changed]: xmlExport.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/xml/xmlExport.cxx?r1=1.22.32.1&r2=1.22.32.2 Delta lines: +68 -57 --------------------- --- xmlExport.cxx 2008-08-21 10:41:43+0000 1.22.32.1 +++ xmlExport.cxx 2008-09-30 07:31:42+0000 1.22.32.2 @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: xmlExport.cxx,v $ - * $Revision: 1.22.32.1 $ + * $Revision: 1.22.32.2 $ * * This file is part of OpenOffice.org. * @@ -104,6 +104,7 @@ #include <com/sun/star/awt/FontDescriptor.hpp> #endif #include <svtools/filenotation.hxx> +#include <tools/diagnose_ex.h> namespace dbaxml { @@ -998,11 +999,16 @@ // ----------------------------------------------------------------------------- void ODBExport::exportColumns(const Reference<XColumnsSupplier>& _xColSup) { - if ( _xColSup.is() ) - { - Reference<XNameAccess> xNameAccess = _xColSup->getColumns(); - if ( xNameAccess.is() && xNameAccess->hasElements() ) + OSL_PRECOND( _xColSup.is(), "ODBExport::exportColumns: invalid columns supplier!" ); + if ( !_xColSup.is() ) + return; + + try { + Reference<XNameAccess> xNameAccess( _xColSup->getColumns(), UNO_SET_THROW ); + if ( !xNameAccess->hasElements() ) + return; + SvXMLElementExport aColumns(*this,XML_NAMESPACE_DB, XML_COLUMNS, sal_True, sal_True); Sequence< ::rtl::OUString> aSeq = xNameAccess->getElementNames(); const ::rtl::OUString* pIter = aSeq.getConstArray(); @@ -1051,6 +1057,9 @@ } } } + catch( const Exception& ) + { + DBG_UNHANDLED_EXCEPTION(); } } // ----------------------------------------------------------------------------- @@ -1140,20 +1149,22 @@ pExportHelper[i].second.first->insert( TPropertyStyleMap::value_type(_xProp,GetAutoStylePool()->Add( pExportHelper[i].second.second, aPropertyStates ))); } - Reference< XNameAccess > xCollection = xSup->getColumns(); + Reference< XNameAccess > xCollection; try { + xCollection.set( xSup->getColumns(), UNO_SET_THROW ); awt::FontDescriptor aFont; _xProp->getPropertyValue(PROPERTY_FONT) >>= aFont; GetFontAutoStylePool()->Add(aFont.Name,aFont.StyleName,aFont.Family,aFont.Pitch,aFont.CharSet ); + + m_aCurrentPropertyStates = m_xCellExportHelper->Filter(_xProp); + ::comphelper::mem_fun1_t<ODBExport,XPropertySet* > aMemFunc(&ODBExport::exportAutoStyle); + exportCollection(xCollection,XML_TOKEN_INVALID,XML_TOKEN_INVALID,sal_False,aMemFunc); } catch(Exception&) { - // not interested in + DBG_UNHANDLED_EXCEPTION(); } - m_aCurrentPropertyStates = m_xCellExportHelper->Filter(_xProp); - ::comphelper::mem_fun1_t<ODBExport,XPropertySet* > aMemFunc(&ODBExport::exportAutoStyle); - exportCollection(xCollection,XML_TOKEN_INVALID,XML_TOKEN_INVALID,sal_False,aMemFunc); m_aCurrentPropertyStates.clear(); } else --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]