You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/07/01 11:54:24 UTC
svn commit: r1498343 - /openoffice/trunk/main/sfx2/source/doc/docfile.cxx
Author: orw
Date: Mon Jul 1 09:54:24 2013
New Revision: 1498343
URL: http://svn.apache.org/r1498343
Log:
121143: SfxMedium - assure that name of internal used temporary file does not clash with SfxMedium's name
Modified:
openoffice/trunk/main/sfx2/source/doc/docfile.cxx
Modified: openoffice/trunk/main/sfx2/source/doc/docfile.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/doc/docfile.cxx?rev=1498343&r1=1498342&r2=1498343&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/doc/docfile.cxx (original)
+++ openoffice/trunk/main/sfx2/source/doc/docfile.cxx Mon Jul 1 09:54:24 2013
@@ -585,7 +585,9 @@ Reference < XContent > SfxMedium::GetCon
SvStream* SfxMedium::GetInStream()
{
if ( pInStream )
+ {
return pInStream;
+ }
if ( pImp->pTempFile )
{
@@ -601,13 +603,17 @@ SvStream* SfxMedium::GetInStream()
pInStream = NULL;
}
else
+ {
return pInStream;
+ }
}
GetMedium_Impl();
if ( GetError() )
+ {
return NULL;
+ }
return pInStream;
}
@@ -2330,14 +2336,20 @@ void SfxMedium::GetMedium_Impl()
//TODO/MBA: ErrorHandling - how to transport error from MediaDescriptor
if ( !GetError() && !pImp->xStream.is() && !pImp->xInputStream.is() )
+ {
SetError( ERRCODE_IO_ACCESSDENIED, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ) );
+ }
if ( !GetError() )
{
if ( pImp->xStream.is() )
+ {
pInStream = utl::UcbStreamHelper::CreateStream( pImp->xStream );
+ }
else if ( pImp->xInputStream.is() )
+ {
pInStream = utl::UcbStreamHelper::CreateStream( pImp->xInputStream );
+ }
}
pImp->bDownloadDone = sal_True;
@@ -3447,15 +3459,23 @@ sal_Bool SfxMedium::SetWritableForUserOn
void SfxMedium::CreateTempFile( sal_Bool bReplace )
{
if ( pImp->pTempFile )
- {
+ {
if ( !bReplace )
return;
DELETEZ( pImp->pTempFile );
- aName = String();
- }
+ aName = String();
+ }
- pImp->pTempFile = new ::utl::TempFile();
+ do
+ {
+ pImp->pTempFile = new ::utl::TempFile();
+ if ( GetName().Equals( pImp->pTempFile->GetURL() ) )
+ {
+ delete pImp->pTempFile;
+ pImp->pTempFile = NULL;
+ }
+ } while ( pImp->pTempFile == NULL );
pImp->pTempFile->EnableKillingFile( sal_True );
aName = pImp->pTempFile->GetFileName();
::rtl::OUString aTmpURL = pImp->pTempFile->GetURL();
@@ -3551,9 +3571,20 @@ void SfxMedium::CreateTempFileNoCopy()
{
// this call always replaces the existing temporary file
if ( pImp->pTempFile )
+ {
delete pImp->pTempFile;
+ pImp->pTempFile = NULL;
+ }
- pImp->pTempFile = new ::utl::TempFile();
+ do
+ {
+ pImp->pTempFile = new ::utl::TempFile();
+ if ( GetName().Equals( pImp->pTempFile->GetURL() ) )
+ {
+ delete pImp->pTempFile;
+ pImp->pTempFile = NULL;
+ }
+ } while ( pImp->pTempFile == NULL );
pImp->pTempFile->EnableKillingFile( sal_True );
aName = pImp->pTempFile->GetFileName();
if ( !aName.Len() )