summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorVasily Melenchuk <vasily.melenchuk@cib.de>2015-07-15 18:49:51 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2015-07-17 14:51:28 +0000
commitc8cd629132f5b4d879edc53911a4e4abeb8d90aa (patch)
treea0cb72483043bb19a0359b6ae580ea1ba1b54a16 /sfx2
parent406a815642a7b2b34107c49856f3f25ccfd4277d (diff)
tdf#92758: no more duplication of document in CMIS after checkin
Document now is correctly reloaded after checkin, so no copy of closed on server private working copy remains. Change-Id: I1625bda2f960827d60018b0702447b93886043f3 Reviewed-on: https://gerrit.libreoffice.org/17118 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/doc/docfile.cxx61
1 files changed, 29 insertions, 32 deletions
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index d89235a8a70e..49e7a474165d 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -3640,44 +3640,41 @@ bool SfxMedium::SwitchDocumentToFile( const OUString& aURL )
uno::Reference< embed::XStorage > xStorage = GetStorage();
uno::Reference< embed::XOptimizedStorage > xOptStorage( xStorage, uno::UNO_QUERY );
- if ( xOptStorage.is() )
- {
- // TODO/LATER: reuse the pImp->pTempFile if it already exists
- CanDisposeStorage_Impl( false );
- Close();
- SetPhysicalName_Impl( OUString() );
- SetName( aURL );
+ // TODO/LATER: reuse the pImp->pTempFile if it already exists
+ CanDisposeStorage_Impl( false );
+ Close();
+ SetPhysicalName_Impl( OUString() );
+ SetName( aURL );
- // open the temporary file based document
- GetMedium_Impl();
- LockOrigFileOnDemand( false, false );
- CreateTempFile( true );
- GetMedium_Impl();
+ // open the temporary file based document
+ GetMedium_Impl();
+ LockOrigFileOnDemand( false, false );
+ CreateTempFile( true );
+ GetMedium_Impl();
- if ( pImp->xStream.is() )
+ if ( pImp->xStream.is() )
+ {
+ try
{
- try
- {
- uno::Reference< io::XTruncate > xTruncate( pImp->xStream, uno::UNO_QUERY_THROW );
- if ( xTruncate.is() )
- xTruncate->truncate();
-
+ uno::Reference< io::XTruncate > xTruncate( pImp->xStream, uno::UNO_QUERY_THROW );
+ if ( xTruncate.is() )
+ xTruncate->truncate();
+ if ( xOptStorage.is() )
xOptStorage->writeAndAttachToStream( pImp->xStream );
- pImp->xStorage = xStorage;
- bResult = true;
- }
- catch( const uno::Exception& )
- {}
- }
-
- if ( !bResult )
- {
- Close();
- SetPhysicalName_Impl( OUString() );
- SetName( aOrigURL );
- GetMedium_Impl();
pImp->xStorage = xStorage;
+ bResult = true;
}
+ catch( const uno::Exception& )
+ {}
+ }
+
+ if ( !bResult )
+ {
+ Close();
+ SetPhysicalName_Impl( OUString() );
+ SetName( aOrigURL );
+ GetMedium_Impl();
+ pImp->xStorage = xStorage;
}
}