Apache OpenOffice (AOO) Bugzilla – Issue 58335
exists method of SimpleFileAccess Service freezes Office
Last modified: 2013-02-24 21:00:35 UTC
starting the macro of the document attached sometimes freezes the office application. The freeze occurs when the exists method of the SimpleFileAccess Object is called. Unrfortunately this cannot be reproduced regularly but only sometimes. I also could not reproduce the bug withe the following stripped down macro: Public const SFILEURL = "http://so-doc.germany.sun.com/Teams/User_Experience/Templates/development/versions" Sub Initialize oUcb = CreateUnoService("com.sun.star.ucb.SimpleFileAccess") Msgbox "Datei '" & SFILEURL & "' existiert: " & oUcb.Exists(SFILEURL) End Sub This task should be higher prioritized because the document is designed to be the future specification template and therefor relies on the stability of its macro. BC->AB: If you have a suggestion how to modify the macro that it works fine I would be grateful two. In this case the task could also be fixed with a lower target.
Created attachment 31730 [details] Document with attached macro. Macro is started on document open
Hint: Most of the time I had problems to reproduce this pro- blem when starting soffice from msdev. Starting it outside and connecting to the process afterwards worked better. The OFileAccess::exists method (located in fileaccess\source\ FileAccess.cxx) only tries to open a file for reading. If an XInputStream is available the file is considered to be exi- sting. The problem occurs when the XInputStream reference is released. This of cause calls the XInputStream dtor and finally leads to a call to osl_joinWithThread that obviously fails: ucbhelper3MSC.dll!osl::Thread::join() Line 127 + 0xc C++ ucbhelper3MSC.dll!ucb_impl::InputStream::~InputStream() Line 568 + 0x12 C++ ucbhelper3MSC.dll!ucb_impl::InputStream::`scalar deleting destructor'() + 0xf C++ cppuhelper3MSC.dll!cppu::OWeakObject::release() Line 234 + 0x1f C++ ucbhelper3MSC.dll!cppu::WeakImplHelper2<com::sun::star::io::XInputStream,com::sun::star::io::XSeekable>::release() Line 121 + 0xc C++ fileacc.dll!05a11c06() == OFileAccess::exists The code in SimpleFileAccess is very basic and uses the ucb:: Content helper functionality. The code doesn't care about threads at all and I can't see any problem in this scenario. So I assume the problem to be located in ucbhelper.
acc
added mmp to cc. I could hardly stop myself to change the prio to P2. This issue is crucial for the new spec template <http://specs.openoffice.org/collaterals/template/OpenOffice-org-Specification-Template.ott>
removed blocking state from downloading state on termination.
verified re-open issue and reassign to tm@openoffice.org
reassign to tm@openoffice.org
reset resolution to FIXED
Checked and verified in cws nfslockproblem -> OK !
Verified in 680m1 build -> closed !