ich habe eine Anwendung(Extension) entwickelt, die Versicherungsangebote erstellt.
In der Extension gibt es u.a. zwei files:
FPP_ZD.ods und
FPP_BE.ods
FPP_ZD.ods (oDocFPP) ist die eigentliche Anwendung, in der über Dialoge Benutzereingaben erfolgen und Angebote erstellt werden.
In FPP_BE.ods (oDocFPP_BE) werden diese Benutzereingaben gespeichert.
Die Anwendung läuft nun seit einigen Jahren problemlos (zuletzt unter Ubuntu 12.04 und LO 4.1.5.3).
Wir haben jetzt auf Ubuntu 14.04 und LO 4.3.5.2 gewechselt.
Nun ergibt sich folgendes Problem:
Wenn ich in der Anwendung auf den Speicher-Button drücke, und den darauf folgenden Speichern-Dialog bestätige stürzt LO ab (in mehr als 50% der Fälle)
Grob passiert in der folgenden Prozedur dies:
Die Benutzerdatendatei (FPP_BE.ods) wird 'hidden' geöffnet, die Daten aus der Anwendung werden in FPP_BE.ods übertragen, die Datei wird gespeichert und dann geschlossen.
Beim .Close(True) crasht LO regelmäßig!!!
Die Prozedur aus der Extension:
Code: Alles auswählen
'*********************************************************************************************************
'*   Beim Speichern der Anwendung werden die Daten in die BE_Datei übernommen.                           *
'*   Die Prozedur wird über den Speichern-Button auf der Startseite der Anwendung aufgerufen.            *
'*********************************************************************************************************
Sub SpeichernUnter_FPP(oDocFPP As Object)
	Dim speicherDialog as Object
	Dim dateiname As String
	Dim DialogTyp(0)
	Dim arg()
	Dim antwort
	Dim datei
	Dim args1(0) as new com.sun.star.beans.PropertyValue
	Dim oDocFPP_BE As Object
	Dim i As Integer
	
	
    nurSpeichern_KZ_FPP = True
	args1(0).Name = "FilterName"
	args1(0).Value = "calc8"
	arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE)
	speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
	With speicherDialog
		.Initialize(arg())
		.appendFilter("OpenDocument Tabellendokument (.ods)", "*.ods")
		.SetMultiselectionMode(False)
		.setDisplayDirectory(ConvertToURL(Environ("HOME")) & "/Kraftfahrt-OO") ' neu UBUNTU
		.SetTitle("Speichern Unter")
		.setcurrentFilter("OpenDocument Tabellendokument (.ods)")
		.SetValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION, 0, true)
		.SetDefaultName(glDateiname_FPP)
	End With
	
	antwort = speicherDialog.execute()
	If antwort = 1 Then
		datei = speicherDialog.Files(0) 'steht darin der nur der Name
		glDateiname_FPP = Mid(FilenameoutofPath(ConvertFromUrl(datei),sSeparator), 1, Len(FilenameoutofPath(ConvertFromUrl(datei),sSeparator)) - 4)
	    oDocFPP_BE = OpenFileInPathHidden("Template", "FPP_BE.ods")
' Datentransfer
		Call Anwendungsdaten_nach_BE_FPP(oDocFPP, oDocFPP_BE) 
		With oDocFPP_BE
			.LockControllers   	
			.unProtect("xxx")
			For i = 0 To .Sheets.getCount() - 1
				If .Sheets.getByIndex(i).Name <> "Dummy" Then
					.Sheets.getByIndex(i).IsVisible = False
				End If
			Next
			.Protect("xxx")
			.UnlockControllers
			.storeToUrl(datei, args1()) ' Speichern
			.Close(True) ' hier crasht LO!!!!!!
		End With
	End If
    nurSpeichern_KZ_FPP = False
 
	oDocFPP.Title = glDateiname_FPP
	oDocFPP.Modified = False
End SubHat da jemand ne Idee???
LO meldet keinen Fehler, sondern stürzt direkt ab. Aber die JRE hat ein errorlog erzeugt. Die Datei kann ich aber nicht anhängen.
Hier der Anfang ...
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fbac54a3ec4, pid=10376, tid=140440868099968
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libsvxcorelo.so+0x418ec4] SdrObjList::GetObj(unsigned long) const+0x14
...
Gruß Thomas