Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On Fri, Aug 16, 2013 at 02:55:35PM +0200, Stephan Bergmann wrote:
Happened to notice on current master that "File - New - Database -
Select database - Create a new database - Embedded Database: HSQLDB
Embedded - Finish - Save - Use Wizard to Create Table... - Cancel -
File - Exit LibreOffice" leads to

warn:legacy.osl:28758:1:dbaccess/source/core/dataaccess/ModelImpl.cxx:910: caught an exception!
in function:static bool 
dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors(const 
com::sun::star::uno::Reference<com::sun::star::embed::XStorage>&)
type: com.sun.star.uno.DeploymentException
message: component context fails to supply service com.sun.star.io.TempFile of type 
com.sun.star.io.XTempFile
context: N4cppu16ComponentContextE

warn:legacy.osl:28758:1:dbaccess/source/core/dataaccess/ModelImpl.cxx:819: 
ODatabaseModelImpl::commitRootStorage: could commit the storage!


Yes, see that all the time on .odb files; not only embedded HSQLDB
database. I find it curious it complains that it *could* do something,
usually messages complain that they could *not* do something.

Never looked at it in any depth.


because at

#2  0x00007f2a502dca12 in dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors 
(_rxStorage=uno::Reference to (OStorage *) 0x7f2a5002f348) at 
lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:910
#3  0x00007f2a502dc33a in dbaccess::ODatabaseModelImpl::commitRootStorage (this=0x17de510) at 
lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:817
#4  0x00007f2a502db8d4 in dbaccess::ODatabaseModelImpl::dispose (this=0x17de510) at 
lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:730
#5  0x00007f2a5025dd1b in dbaccess::ODatabaseContext::disposing (this=0x7f2a50d4b7a8) at 
lo/core/dbaccess/source/core/dataaccess/databasecontext.cxx:288
#6  0x00007f2a7700aad8 in cppu::WeakComponentImplHelperBase::dispose (this=0x7f2a50d4b7a8) at 
lo/core/cppuhelper/source/implbase.cxx:268
#7  0x00007f2a5026c9ba in cppu::WeakComponentImplHelper3<com::sun::star::lang::XServiceInfo, 
com::sun::star::sdb::XDatabaseContext, com::sun::star::lang::XUnoTunnel>::dispose 
(this=0x7f2a50d4b7a8) at lo/core/include/cppuhelper/compbase3.hxx:66
#8  0x00007f2a76ffdee4 in cppu::OFactoryComponentHelper::dispose (this=0x7f2a510ade08) at 
lo/core/cppuhelper/source/factory.cxx:471
#9  0x00007f2a76ff1cc4 in cppu::OComponentHelper::release (this=0x7f2a510ade08) at 
lo/core/cppuhelper/source/component.cxx:91
#10 0x00007f2a77007a1c in cppu::OFactoryComponentHelper::release (this=0x7f2a510ade08) at 
lo/core/cppuhelper/source/factory.cxx:292
#11 0x00007f2a76fecde3 in 
com::sun::star::uno::Reference<com::sun::star::lang::XSingleComponentFactory>::~Reference 
(this=0xb75330, __in_chrg=<optimized out>) at lo/core/include/com/sun/star/uno/Reference.hxx:106
#12 0x00007f2a77072d8b in cppuhelper::ServiceManager::Data::Implementation::~Implementation 
(this=0xb75320, __in_chrg=<optimized out>) at lo/core/cppuhelper/source/servicemanager.hxx:79
#13 0x00007f2a77072de4 in 
boost::checked_delete<cppuhelper::ServiceManager::Data::Implementation> (x=0xb75320) at 
lo/core/workdir/unxlngx6/UnpackedTarball/boost/boost/checked_delete.hpp:34
#14 0x00007f2a770776e4 in 
boost::detail::sp_counted_impl_p<cppuhelper::ServiceManager::Data::Implementation>::dispose 
(this=0xb75430) at 
lo/core/workdir/unxlngx6/UnpackedTarball/boost/boost/smart_ptr/detail/sp_counted_impl.hpp:78
#15 0x00007f2a76ff5404 in boost::detail::sp_counted_base::release (this=0xb75430) at 
lo/core/workdir/unxlngx6/UnpackedTarball/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146
#16 0x00007f2a76ff547d in boost::detail::shared_count::~shared_count (this=0xb75480, 
__in_chrg=<optimized out>) at 
lo/core/workdir/unxlngx6/UnpackedTarball/boost/boost/smart_ptr/detail/shared_count.hpp:371
#17 0x00007f2a76ffa590 in 
boost::shared_ptr<cppuhelper::ServiceManager::Data::Implementation>::~shared_ptr (this=0xb75478, 
__in_chrg=<optimized out>) at 
lo/core/workdir/unxlngx6/UnpackedTarball/boost/boost/smart_ptr/shared_ptr.hpp:328

other UNO services (like the TempFile one) are already disposed when
the dbaccess::ODatabaseContext service impl is disposed and in turn
disposes its cached datasources, which in turn appear to always call
commitStorageIfWriteable_ignoreErrors.

No real insight into any of this, but would it make sense to rely on
some explicit "commit" stimulus to do that committing, instead of
doing it upon "dispose" 

I don't understand what "commit stimulus" is.

(or at least take into account m_bModified and not try to commit if
not necessary?).

This seems to make sense; embedded hsqldb are a bit weird because they
save some files (the ones in database/) "automatically" even without
user "save" action. I *hope* that this does not clobber m_bModified if
*other* changes are pending (e.g. creation / modification of a report
/ form / ...). I wouldn't be *too* surprised if the "save even when
m_bModified == false" was to work around a putative "m_bModified is
clobbered wrongly" issue.

-- 
Lionel

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.