Tag: cws_dev300_odbmacros3 User: fs Date: 2008-09-09 11:26:44+0000 Modified: dba/dbaccess/source/filter/xml/dbloader2.cxx
Log: RESYNC: (1.37-1.39); FILE MERGED File Changes: Directory: /dba/dbaccess/source/filter/xml/ =========================================== File [changed]: dbloader2.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/xml/dbloader2.cxx?r1=1.32.28.12&r2=1.32.28.13 Delta lines: +18 -1 -------------------- --- dbloader2.cxx 2008-08-25 09:38:37+0000 1.32.28.12 +++ dbloader2.cxx 2008-09-09 11:26:29+0000 1.32.28.13 @@ -143,16 +143,19 @@ try { ::comphelper::NamedValueCollection aMedia( Descriptor ); + sal_Bool bStreamFromDescr = sal_False; + ::rtl::OUString sURL = aMedia.getOrDefault( "URL", ::rtl::OUString() ); + Reference< XInputStream > xInStream( aMedia.getOrDefault( "InputStream", Reference< XInputStream >() ) ); Reference< XPropertySet > xStorageProperties; if ( xInStream.is() ) { + bStreamFromDescr = sal_True; xStorageProperties.set( ::comphelper::OStorageHelper::GetStorageFromInputStream( xInStream, m_aContext.getLegacyServiceFactory() ), UNO_QUERY ); } else { - ::rtl::OUString sURL = aMedia.getOrDefault( "URL", ::rtl::OUString() ); ::rtl::OUString sSalvagedURL( aMedia.getOrDefault( "SalvagedFile", ::rtl::OUString() ) ); ::rtl::OUString sFileLocation( sSalvagedURL.getLength() ? sSalvagedURL : sURL ); @@ -168,7 +171,21 @@ ::rtl::OUString sMediaType; xStorageProperties->getPropertyValue( INFO_MEDIATYPE ) >>= sMediaType; if ( sMediaType.equalsAscii(MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII) || sMediaType.equalsAscii(MIMETYPE_VND_SUN_XML_BASE_ASCII) ) + { + if ( bStreamFromDescr && sURL.compareTo( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:stream" ) ), 14 ) != COMPARE_EQUAL ) + { + // After fixing of the i88522 issue ( use the new file locking for database files ) the stream from the type detection can be used further + // for now the file should be reopened to have read/write access + aMedia.remove( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InputStream" ) ) ); + aMedia >>= Descriptor; + try { + if ( xInStream.is() ) + xInStream->closeInput(); + } catch( Exception& ) {} + } + return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StarBase")); + } ::comphelper::disposeComponent(xStorageProperties); } } catch(Exception&){} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
