Description: I have two extensions that use the com.sun.star.embed.XStorage interface on odb files and I just noticed that this interface has become unusable with versions 7.6 and 7.7 of LibreOffice Steps to Reproduce: 1. Install jdbcDriverOOo extension (https://prrvchr.github.io/jdbcDriverOOo/) 2. Install SQLiteOOo extension (https://prrvchr.github.io/HsqlDriverOOo/) 3. Create a new SQLite embedded database and open the database for editing (https://prrvchr.github.io/HsqlDriverOOo/#how-to-create-a-new-database) 4. Close this new database (file -> close) or save it under a new name (file -> Save as) Actual Results: If you use a version of LibreOffice 7.6 or higher LibreOffice freezes when closing or saving under another name. Expected Results: If you use a version of LibreOffice 7.5 or lower LibreOffice close or save as new name without problems. Reproducible: Always User Profile Reset: No Additional Info: It seems that the LibreOffice freeze occurs not when acquiring the XStorage interface but when starting the data transfer.
Work on: Version: 7.3.7.2 / LibreOffice Community Build ID: 30(Build:2) CPU threads: 2; OS: Linux 5.15; UI render: default; VCL: qt5 (cairo+xcb) Locale: fr-FR (fr_FR.UTF-8); UI: en-US Ubuntu package version: 1:7.3.7-0ubuntu0.22.04.3 Calc: threaded Version: 7.5.5.2 (X86_64) / LibreOffice Community Build ID: 50(Build:2) CPU threads: 2; OS: Linux 5.15; UI render: default; VCL: qt5 (cairo+xcb) Locale: fr-FR (fr_FR.UTF-8); UI: en-US Ubuntu package version: 4:7.5.5~rc2-0ubuntu0.22.04.1~lo1 Calc: threaded Version: 7.4.3.2 (x64) / LibreOffice Community Build ID: 1048a8393ae2eeec98dff31b5c133c5f1d08b890 CPU threads: 2; OS: Windows 10.0 Build 19045; UI render: Skia/Raster; VCL: win Locale: fr-FR (fr_FR); UI: fr-FR Calc: threaded LibreOffice freezes on: Version: 7.6.0.1 (X86_64) / LibreOffice Community Build ID: 776eaf34564cbf3f034a0ba1fd1d5c32ff9ccf1c CPU threads: 2; OS: Linux 5.15; UI render: default; VCL: qt5 (cairo+xcb) Locale: fr-FR (fr_FR.UTF-8); UI: en-US Calc: threaded Version: 7.6.0.1 (X86_64) / LibreOffice Community Build ID: 776eaf34564cbf3f034a0ba1fd1d5c32ff9ccf1c CPU threads: 2; OS: Windows 10.0 Build 19045; UI render: Skia/Raster; VCL: win Locale: fr-FR (fr_FR); UI: fr-FR Calc: threaded
With LibreOffice version 7.5.x or lower, when I close an embedded odb file I get the following log file: > event no thread date time (class/method:) message > 1 52409 2023-07-31 18:06:16.544235642 Driver::__init__(): Driver initialization completed > 2 52409 2023-07-31 18:06:16.550178861 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 3 52409 2023-07-31 18:06:16.552129142 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 4 52409 2023-07-31 18:06:16.555664628 Driver::getPropertyInfo(): Get information about the possibles DriverPropertyInfo for this driver for URL: sdbc:embedded:hsqldb > 5 52409 2023-07-31 18:06:16.922124393 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: JavaDriverClass / > 6 52409 2023-07-31 18:06:16.927646831 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: JavaDriverClassPath / > 7 52409 2023-07-31 18:06:16.929451531 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: SystemProperties / > 8 52409 2023-07-31 18:06:16.931096176 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ParameterNameSubstitution / false > 9 52409 2023-07-31 18:06:16.932993773 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IsAutoRetrievingEnabled / false > 10 52409 2023-07-31 18:06:16.935386244 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: AutoRetrievingStatement / > 11 52409 2023-07-31 18:06:16.937198930 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: GenerateASBeforeCorrelationName / true > 12 52409 2023-07-31 18:06:16.938806895 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IgnoreCurrency / false > 13 52409 2023-07-31 18:06:16.940391787 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: EscapeDateTime / true > 14 52409 2023-07-31 18:06:16.942468308 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: TypeInfoSettings / > 15 52409 2023-07-31 18:06:16.944180000 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ImplicitCatalogRestriction / > 16 52409 2023-07-31 18:06:16.945866908 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ImplicitSchemaRestriction / > 17 52409 2023-07-31 18:06:16.947506469 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: AutoIncrementCreation / > 18 52409 2023-07-31 18:06:16.949396286 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IgnoreDriverPrivileges / false > 19 52409 2023-07-31 18:06:17.048375978 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 20 52409 2023-07-31 18:06:17.080965478 Driver::connect(): Loading the driver for the url: file:///home/prrvchr/Documents/New%20Database.odb > 21 52409 2023-07-31 18:06:17.770531205 Driver::connect(): SQLite version: 3.42.0.0 database is loaded, the user: is connected > 22 52409 2023-07-31 18:06:17.886325308 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 23 52409 2023-07-31 18:06:17.892760195 Driver::getDataDefinitionByConnection(): Driver give the container of tables related to the given connection. > 24 52409 2023-07-31 18:06:21.146850924 DocumentHandler::queryClosing(): Attempt to close document with Url: file:///home/prrvchr/Documents/New%20Database.odb > 25 52409 2023-07-31 18:06:21.150262505 DocumentHandler::_closeDataBase(): Attempt to move element with name: New Database > 26 52409 2023-07-31 18:06:21.153191825 DocumentHandler::_closeDataBase(): The element with name: New Database has been moved... > 27 52409 2023-07-31 18:06:21.189808886 DocumentHandler::queryClosing(): The document with Url: file:///home/prrvchr/Documents/New%20Database.odb has been closed... With a version 7.6.x or 7.7 (gerrit), when I close an embedded odb file, LibreOffice freezes with the following log file: > event no thread date time (class/method:) message > 1 51385 2023-07-31 17:58:11.878416411 Driver::__init__(): Driver initialization completed > 2 51385 2023-07-31 17:58:11.882501541 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 3 51385 2023-07-31 17:58:11.887354195 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 4 51385 2023-07-31 17:58:11.897610021 Driver::getPropertyInfo(): Get information about the possibles DriverPropertyInfo for this driver for URL: sdbc:embedded:hsqldb > 5 51385 2023-07-31 17:58:11.907960079 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: JavaDriverClass / > 6 51385 2023-07-31 17:58:11.910489485 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: JavaDriverClassPath / > 7 51385 2023-07-31 17:58:11.912715553 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: SystemProperties / > 8 51385 2023-07-31 17:58:11.915011909 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ParameterNameSubstitution / false > 9 51385 2023-07-31 17:58:11.918285426 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IsAutoRetrievingEnabled / false > 10 51385 2023-07-31 17:58:11.921728006 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: AutoRetrievingStatement / > 11 51385 2023-07-31 17:58:11.924292132 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: GenerateASBeforeCorrelationName / true > 12 51385 2023-07-31 17:58:11.926676553 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IgnoreCurrency / false > 13 51385 2023-07-31 17:58:11.929076966 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: EscapeDateTime / true > 14 51385 2023-07-31 17:58:11.931252736 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: TypeInfoSettings / > 15 51385 2023-07-31 17:58:11.933559082 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ImplicitCatalogRestriction / > 16 51385 2023-07-31 17:58:11.935732915 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: ImplicitSchemaRestriction / > 17 51385 2023-07-31 17:58:11.938016982 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: AutoIncrementCreation / > 18 51385 2023-07-31 17:58:11.940289018 Driver::getPropertyInfo(): The driver responds with a DriverPropertyInfo Name / Value: IgnoreDriverPrivileges / false > 19 51385 2023-07-31 17:58:11.945033540 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 20 51385 2023-07-31 17:58:12.062465771 Driver::connect(): Loading the driver for the url: file:///home/prrvchr/Documents/New%20Database.odb > 21 51385 2023-07-31 17:58:12.382000607 Driver::connect(): SQLite version: 3.42.0.0 database is loaded, the user: is connected > 22 51385 2023-07-31 17:58:12.458088212 Driver::acceptsURL(): Driver can open a connection with the URL: sdbc:embedded:hsqldb - True > 23 51385 2023-07-31 17:58:12.461811875 Driver::getDataDefinitionByConnection(): Driver give the container of tables related to the given connection. > 24 51385 2023-07-31 17:58:43.021525417 DocumentHandler::queryClosing(): Attempt to close document with Url: file:///home/prrvchr/Documents/New%20Database.odb > 25 51385 2023-07-31 17:58:43.036071164 DocumentHandler::_closeDataBase(): Attempt to move element with name: New Database
For me this problem is solved, I use the com.sun.star.embed.XStorage interface differently[1]. I cannot explain the origin of this bug since my extensions worked under OpenOffice and LibreOffice until 7.5.x. Nothing justifies my having to change the code of my extensions for versions 7.6.x and above, but I'm going to be satisfied with that, you mustn't always want to understand everything... [1] https://github.com/prrvchr/uno/commit/a2fa9f5975a35e8447907e51b0f78ac1b1b76e17