Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf

Guten Morgen Gerhard,

ich habe auch mal ein wenig getestet:

[0] Meine Testumgebung

+ Windows 7 Home Premium 64-bit
+ LO 5.3.7.2 (x64) PARALLEL-INSTALLATION
+ LO 6.1.4.2 (x64) PARALLEL-INSTALLATION
+ LO 6.1.5.2 (x64) PARALLEL-INSTALLATION
+ LO 6.2.1.2 (x64) PARALLEL-INSTALLATION
+ LO 6.2.2.2 (x64) INSTALLATION
+ LO 6.2.3.1 (x64) PARALLEL-INSTALLATION

[1] Ich kann bestätigen, dass das Makro von Juergen IMMER fehlerfrei abläuft, wenn man es direkt aus der BASIC-IDE via "StartKopfzeile" startet (5.3.7.2 + 6.1.4.1 + 6.1.5.2 + 6.2.1.2 + 6.2.2.2 + 6.2.3.1).

:
Call xSeite
REM ???
REM Einfrieren von LO nach Aktivierung dieser Messagebox
Msgbox "Test"
REM ???
:

[2] Ich kann Juergens Aussage NICHT BESTÄTIGEN, dass sein Makro vor 6.2.1.2 funktionierte ( 5.3.7.2 OKAY + 6.1.4.2 ERROR + 6.1.5.2 ERROR + 6.2.1.2 ERROR + 6.2.2.2 ERROR + 6.2.3.1 ERROR).

[3] Im Laufe dieses Threads wurden 3 (verschiedene) Probleme mitgeteilt:

[3.1] Juergen

Sein BASIC-Makro läuft mit 6.2.1.2 (oder neuer) nicht mehr. Ich kann das nicht bestätigen, auch mit 6.1.5.2 (s.o.). Bleibt nach dem MsgBox-Aufruf hängen (soffice.bin mit 25% CPU-Last bei meinen Tests).

[3.2] Hans-Werner

Bei externem Aufruf bleibt nach Anzeige des FolderPicker Betriebssystem (com.sun.star.ui.dialogs.FolderPicker) und durchgeführter Ordnerauswahl das BASIC-Makro hängen (soffice.bin mit 0% CPU-Last bei meinen Tests). Bei Aufruf des Makros direkt aus der BASIC-IDE tritt der Fehler nicht auf. Mit dem FolderPicker LibreOffice (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro fehlerfrei.

[3.3] Oliver

Sein BEANSHELL-Makro bleibt ab LO 6.1.5.2 (oder neuer unter Windows 10) bei Nutzung des FolderPicker Betriebssystem (com.sun.star.ui.dialogs.FolderPicker) hängen (https://bugs.documentfoundation.org/show_bug.cgi?id=123502). Bei Nutzung des FolderPicker LibreOffice (com.sun.star.ui.dialogs.OfficeFolderPicker) funktioniert das Makro fehlerfrei. Sein gemeldetes Problem konnte (von anderen laut BugReport (nur unter Linux ?) ) nicht reproduziert werden. Mit LO 6.1.4.2 (oder älter ?) tritt das Problem nicht auf. Wenn ich sein "crash" und "Das Programm "[1236] soffice.bin" wurde mit Code 0 (0x0) beendet." richtig deute, heißt das wohl, dass LO komplett abstürzt und LO nicht hängen bleibt. Es ist auch nicht ersichtlich (bzw. getestet) was passiert, ob das BEANSHELL-Makro läuft, wenn es aus der BEANSHELL-IDE heraus gestartet wird, wenn es so eine IDE gibt (habe selbst mit BEANSHELL keinerlei Erfahrung). Weiterhin merkt Oliver an, das wohl die FolderPicker-Implementierung modifiziert wurde (https://bugs.documentfoundation.org/show_bug.cgi?id=123502#c8). Das konnte ich allerdings nicht nachvollziehen, weil die zugehörige PDF-Datei (https://bug-attachments.documentfoundation.org/attachment.cgi?id=149336) nur sehr unvollständig angezeigt wird.

[4] Von mir mitgeteilte Problematik

[4.1] Makro

Sub TEST_HansWerner
Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"
' Const FolderPicker = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Dim DialogFolderPicker as Object
Dim FolderPickerService as String
Dim SelectedFolder as String
Dim PropertyValue(0) as New com.sun.star.beans.PropertyValue
DialogFolderPicker = CreateUnoService(FolderPicker)
DialogFolderPicker.execute()
SelectedFolder = DialogFolderPicker.getDirectory()
MsgBox("SelectedFolder = " & SelectedFolder)
PropertyValue(0).name = "Hidden"
PropertyValue(0).value = False
StarDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,PropertyValue())
MsgBox ("new CALC opened")
End Sub

[4.2] Windows-CMD

SET L="E:/LOP/LibreOffice 6.1.4.2/program/soffice.exe"
SET M="macro:///Standard.Test.TEST_HansWerner()"
%L% --nologo %M%

Mit (SET M="macro:///Standard.Test.TEST_HansWerner()"):

+ "Standard" = Bibliothek = [Meine Makros & Dialoge].Standard
+ "Test" = Modul = Test
+ "TEST_HansWerner()" = Makro = TEST_HansWerner

[4.1] Mit »Const FolderPicker = "com.sun.star.ui.dialogs.OfficeFolderPicker"« funktioniert das Makro IMMER, egal, ob extern gestartet (Windows-CMD) oder intern gestartet (BASIC-IDE).

[4.2] Mit »Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"« funktioniert das Makro immer, wenn es intern gestartet (BASIC-IDE) gestartet wird.

[4.3] Mit »Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"« funktioniert das Makro nur bis einschließlich "LO 6.1.5.2", wenn es extern gestartet (Windows-CMD) wird.

[4.4] Mit »Const FolderPicker = "com.sun.star.ui.dialogs.FolderPicker"« bleibt das Makro ab "LO 6.2.1.2" (einschließlich) hängen, wenn es extern gestartet (Windows-CMD) wird:

+ soffice.bin: CPU-Last 0%
+ Startet man (manuell) in dieser Situation nochmals "C:\Program Files\LibreOffice\program\soffice.exe", wird das Makro weiter (fehlerfrei) ausgeführt.

[5] Zusammenfassung

[5.1] Bei allen 3 Makros wird die "Picker"-Software genutzt.

[5.2] Bei Makro-Start aus der IDE heraus keine Fehler (für [3.3] z.Zt. nicht bekannt).

[5.3] Unterschiedliches Verhalten von "soffice.bin" (0% CPU-Last - 25% CPU-Last - CRASH-Beendigung (?)) im Fehlerfall.

[5.4] Ab welcher LO-Version Probleme auftreten ist nicht ganz einheitlich (s.o.), aber man kann wohl sicher sagen, dass es diese Probleme bis einschließlich "LO 5.3.7.2" nicht gibt beziehungsweise diese ab "LO 6.x.x.x" auftreten.

[5.5] Auch wenn die geschilderten Probleme unterschiedlichster Art sind und auch bezogen auf "LO 6.x.x.x" verschiedene LO-Versionen genannt werden, bei welchen die Probleme auftreten, könnte es schon sein, dass letztendlich die selbe Fehlerursache zu Grunde liegt, die sich eben nur auf Grund der verschiedenen Anwendungen (BASIC/BEANSHELL) und/oder Betriebssysteme (Windows 7/10) verschieden auswirkt. Offensichtlich ist jedenfalls, dass für alle 3 geschilderten Probleme gilt, dass sie vor "LO 6.x.x.x" nicht auftraten und dass bei allen 3 Makros die "Picker"-Software genutzt wird. Ob das jetzt ein deutlicher Hinweis sein könnte kann ich nicht (wirklich) beurteilen, da ich selbst viel zu wenig über die inneren Abläufe von LO und auch, was wann in welcher Weise modifiziert wurde, weiß. Aber vielleicht gibt es ja im Forum jemanden, der aus den geschilderten Fakten weiterreichende Schlüsse in Richtung Problembehebung ziehen kann.

Viele Grüße
Hans-Werner