https://bugs.documentfoundation.org/show_bug.cgi?id=92770
Bug ID: 92770
Summary: thisComponent is not valid during "Open Document" at
startup in non-document macro
Product: LibreOffice
Version: 5.1.0.0.alpha0+ Master
Hardware: Other
OS: All
Status: UNCONFIRMED
Keywords: regression
Severity: normal
Priority: medium
Component: BASIC
Assignee: [email protected]
Reporter: [email protected]
Created attachment 117261
--> https://bugs.documentfoundation.org/attachment.cgi?id=117261&action=edit
reproduction case
When:
- LibreOffice is started with instruction to open document foo.odb
(for example, type in a shell "/path/to/soffice foo.odb")
AND
- in foo.odb, the "Open Document" event is bound to a macro "OnOpen"
AND
- the macro "OnOpen" is not saved in foo.odb, but in "My Macros"
OR calls (without delay, without a MsgBox before, etc)
a macro "Go" that is saved in "My Macros"
AND
- OnOpen/Go tries to use thisComponent
THEN
thisComponent is not set to a valid value. E.g., XRay cannot introspect it, it
doesn't have a supportsService method, ...BUT isEmpty(thisComponent) is
*false*.
Just adding a "wait 5000" solves the problem, which hints at a race condition,
or a wrong order of initialisation (if the wait() makes a Yield/DoEvents).
If the macro OnOpen, saved in the .odb file, uses thisComponent directly, then
it works.
If the macro is executed *after* the document is finished opening, then it
works.
If one first starts LibreOffice and *then* opens the file through the UI, then
it works.
Regression with respect to 5.0 (my GNU/Linux dev tree), 4.4 (Windows TDF build)
and 4.3 (Debian package).
Reproduction steps:
Put in "My Macros" the following (beware bugzilla's word wrap):
Sub showThisComponent
MsgBox "Macro in ""My Macros"": " & _
thisComponent.supportsService("com.sun.star.document.OfficeDocument")
End Sub
Set Macro security to medium or lower.
CLOSE LIBREOFFICE
Open the attached odb file by starting libreoffice with as argument
/path/to/odb_file.
Accept macros if prompted.
Actual result: error message
BASIC runtime error.
Property or method not found: supportsService.
Expected result (and actual result with previous versions): message box saying:
Macro in "My Macros": True
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs